﻿2026-06-21T08:16:00.0184772Z ##[group]Run ./traceable-reqs check --json
2026-06-21T08:16:00.0185152Z [36;1m./traceable-reqs check --json[0m
2026-06-21T08:16:00.0197791Z shell: /usr/bin/bash -e {0}
2026-06-21T08:16:00.0198067Z ##[endgroup]
2026-06-21T08:16:00.1082026Z {
2026-06-21T08:16:00.1082580Z   "schemaVersion": 1,
2026-06-21T08:16:00.1083040Z   "summary": {
2026-06-21T08:16:00.1083451Z     "requirementCount": 275,
2026-06-21T08:16:00.1083942Z     "completeCount": 275,
2026-06-21T08:16:00.1084386Z     "incompleteCount": 0,
2026-06-21T08:16:00.1084838Z     "findingCount": 0
2026-06-21T08:16:00.1085245Z   },
2026-06-21T08:16:00.1085669Z   "requirements": [
2026-06-21T08:16:00.1086066Z     {
2026-06-21T08:16:00.1086499Z       "id": "REQ-API-1",
2026-06-21T08:16:00.1087080Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-21T08:16:00.1087733Z       "requiredStages": [
2026-06-21T08:16:00.1088222Z         "impl",
2026-06-21T08:16:00.1088604Z         "unit",
2026-06-21T08:16:00.1089075Z         "int"
2026-06-21T08:16:00.1089514Z       ],
2026-06-21T08:16:00.1089820Z       "stages": {
2026-06-21T08:16:00.1090135Z         "doc": {
2026-06-21T08:16:00.1090457Z           "complete": false,
2026-06-21T08:16:00.1090807Z           "evidence": []
2026-06-21T08:16:00.1091147Z         },
2026-06-21T08:16:00.1091437Z         "impl": {
2026-06-21T08:16:00.1091767Z           "complete": true,
2026-06-21T08:16:00.1092124Z           "evidence": [
2026-06-21T08:16:00.1092439Z             {
2026-06-21T08:16:00.1092778Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T08:16:00.1093196Z               "line": 15
2026-06-21T08:16:00.1093515Z             }
2026-06-21T08:16:00.1093821Z           ]
2026-06-21T08:16:00.1094116Z         },
2026-06-21T08:16:00.1094407Z         "int": {
2026-06-21T08:16:00.1094727Z           "complete": true,
2026-06-21T08:16:00.1095079Z           "evidence": [
2026-06-21T08:16:00.1095426Z             {
2026-06-21T08:16:00.1095776Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-21T08:16:00.1096210Z               "line": 13
2026-06-21T08:16:00.1096544Z             }
2026-06-21T08:16:00.1096834Z           ]
2026-06-21T08:16:00.1097130Z         },
2026-06-21T08:16:00.1097421Z         "unit": {
2026-06-21T08:16:00.1097745Z           "complete": true,
2026-06-21T08:16:00.1098099Z           "evidence": [
2026-06-21T08:16:00.1098426Z             {
2026-06-21T08:16:00.1098762Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T08:16:00.1099259Z               "line": 717
2026-06-21T08:16:00.1099593Z             },
2026-06-21T08:16:00.1099888Z             {
2026-06-21T08:16:00.1100231Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T08:16:00.1100646Z               "line": 804
2026-06-21T08:16:00.1100988Z             }
2026-06-21T08:16:00.1101281Z           ]
2026-06-21T08:16:00.1101577Z         }
2026-06-21T08:16:00.1101873Z       }
2026-06-21T08:16:00.1102164Z     },
2026-06-21T08:16:00.1102450Z     {
2026-06-21T08:16:00.1102765Z       "id": "REQ-API-2",
2026-06-21T08:16:00.1103300Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-21T08:16:00.1103879Z       "requiredStages": [
2026-06-21T08:16:00.1104227Z         "impl",
2026-06-21T08:16:00.1104532Z         "unit",
2026-06-21T08:16:00.1104847Z         "int"
2026-06-21T08:16:00.1105147Z       ],
2026-06-21T08:16:00.1105443Z       "stages": {
2026-06-21T08:16:00.1105758Z         "doc": {
2026-06-21T08:16:00.1106081Z           "complete": false,
2026-06-21T08:16:00.1106441Z           "evidence": []
2026-06-21T08:16:00.1106765Z         },
2026-06-21T08:16:00.1107061Z         "impl": {
2026-06-21T08:16:00.1107395Z           "complete": true,
2026-06-21T08:16:00.1107743Z           "evidence": [
2026-06-21T08:16:00.1108078Z             {
2026-06-21T08:16:00.1108450Z               "path": "crates/spt-store/src/history.rs",
2026-06-21T08:16:00.1109317Z               "line": 17
2026-06-21T08:16:00.1109651Z             },
2026-06-21T08:16:00.1109947Z             {
2026-06-21T08:16:00.1110534Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T08:16:00.1110954Z               "line": 20
2026-06-21T08:16:00.1111283Z             },
2026-06-21T08:16:00.1111587Z             {
2026-06-21T08:16:00.1111942Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T08:16:00.1112367Z               "line": 142
2026-06-21T08:16:00.1112701Z             },
2026-06-21T08:16:00.1113000Z             {
2026-06-21T08:16:00.1113349Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.1113782Z               "line": 24
2026-06-21T08:16:00.1114117Z             },
2026-06-21T08:16:00.1114429Z             {
2026-06-21T08:16:00.1114773Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.1115198Z               "line": 41
2026-06-21T08:16:00.1115517Z             },
2026-06-21T08:16:00.1115814Z             {
2026-06-21T08:16:00.1116171Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.1116594Z               "line": 213
2026-06-21T08:16:00.1116934Z             },
2026-06-21T08:16:00.1117231Z             {
2026-06-21T08:16:00.1117606Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.1118027Z               "line": 255
2026-06-21T08:16:00.1118371Z             },
2026-06-21T08:16:00.1118681Z             {
2026-06-21T08:16:00.1119109Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.1119560Z               "line": 334
2026-06-21T08:16:00.1119907Z             },
2026-06-21T08:16:00.1120111Z             {
2026-06-21T08:16:00.1120385Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.1120812Z               "line": 397
2026-06-21T08:16:00.1121151Z             },
2026-06-21T08:16:00.1121466Z             {
2026-06-21T08:16:00.1121805Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.1122256Z               "line": 436
2026-06-21T08:16:00.1122599Z             },
2026-06-21T08:16:00.1122894Z             {
2026-06-21T08:16:00.1123266Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T08:16:00.1123680Z               "line": 17
2026-06-21T08:16:00.1124018Z             },
2026-06-21T08:16:00.1124324Z             {
2026-06-21T08:16:00.1124677Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T08:16:00.1125100Z               "line": 30
2026-06-21T08:16:00.1125420Z             },
2026-06-21T08:16:00.1125725Z             {
2026-06-21T08:16:00.1126077Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T08:16:00.1126502Z               "line": 63
2026-06-21T08:16:00.1126821Z             },
2026-06-21T08:16:00.1127121Z             {
2026-06-21T08:16:00.1127462Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T08:16:00.1127881Z               "line": 77
2026-06-21T08:16:00.1128210Z             }
2026-06-21T08:16:00.1128520Z           ]
2026-06-21T08:16:00.1128840Z         },
2026-06-21T08:16:00.1129183Z         "int": {
2026-06-21T08:16:00.1129421Z           "complete": true,
2026-06-21T08:16:00.1129683Z           "evidence": [
2026-06-21T08:16:00.1129909Z             {
2026-06-21T08:16:00.1130169Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-21T08:16:00.1130477Z               "line": 14
2026-06-21T08:16:00.1130709Z             },
2026-06-21T08:16:00.1130920Z             {
2026-06-21T08:16:00.1131188Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-21T08:16:00.1131488Z               "line": 187
2026-06-21T08:16:00.1131716Z             }
2026-06-21T08:16:00.1131930Z           ]
2026-06-21T08:16:00.1132142Z         },
2026-06-21T08:16:00.1132346Z         "unit": {
2026-06-21T08:16:00.1132588Z           "complete": true,
2026-06-21T08:16:00.1132835Z           "evidence": [
2026-06-21T08:16:00.1133072Z             {
2026-06-21T08:16:00.1133334Z               "path": "crates/spt-store/src/history.rs",
2026-06-21T08:16:00.1133854Z               "line": 82
2026-06-21T08:16:00.1134079Z             },
2026-06-21T08:16:00.1134307Z             {
2026-06-21T08:16:00.1134689Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T08:16:00.1134966Z               "line": 279
2026-06-21T08:16:00.1135203Z             },
2026-06-21T08:16:00.1135422Z             {
2026-06-21T08:16:00.1135689Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.1135989Z               "line": 709
2026-06-21T08:16:00.1136223Z             },
2026-06-21T08:16:00.1136441Z             {
2026-06-21T08:16:00.1136709Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.1136990Z               "line": 720
2026-06-21T08:16:00.1137216Z             },
2026-06-21T08:16:00.1137434Z             {
2026-06-21T08:16:00.1137681Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.1137975Z               "line": 873
2026-06-21T08:16:00.1138189Z             },
2026-06-21T08:16:00.1138398Z             {
2026-06-21T08:16:00.1138675Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.1139070Z               "line": 919
2026-06-21T08:16:00.1139375Z             },
2026-06-21T08:16:00.1139590Z             {
2026-06-21T08:16:00.1139834Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T08:16:00.1140116Z               "line": 143
2026-06-21T08:16:00.1140349Z             },
2026-06-21T08:16:00.1140558Z             {
2026-06-21T08:16:00.1140819Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T08:16:00.1141114Z               "line": 187
2026-06-21T08:16:00.1141346Z             }
2026-06-21T08:16:00.1141556Z           ]
2026-06-21T08:16:00.1141781Z         }
2026-06-21T08:16:00.1142067Z       }
2026-06-21T08:16:00.1142368Z     },
2026-06-21T08:16:00.1142673Z     {
2026-06-21T08:16:00.1142993Z       "id": "REQ-API-3",
2026-06-21T08:16:00.1143451Z       "title": "commune/signoff are file-drops, not commands",
2026-06-21T08:16:00.1143933Z       "requiredStages": [
2026-06-21T08:16:00.1144300Z         "impl",
2026-06-21T08:16:00.1144620Z         "unit",
2026-06-21T08:16:00.1144935Z         "int"
2026-06-21T08:16:00.1185512Z       ],
2026-06-21T08:16:00.1185973Z       "stages": {
2026-06-21T08:16:00.1186382Z         "doc": {
2026-06-21T08:16:00.1186808Z           "complete": false,
2026-06-21T08:16:00.1187270Z           "evidence": []
2026-06-21T08:16:00.1187689Z         },
2026-06-21T08:16:00.1188067Z         "impl": {
2026-06-21T08:16:00.1188495Z           "complete": true,
2026-06-21T08:16:00.1189067Z           "evidence": [
2026-06-21T08:16:00.1189491Z             {
2026-06-21T08:16:00.1189953Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-21T08:16:00.1190496Z               "line": 27
2026-06-21T08:16:00.1190922Z             },
2026-06-21T08:16:00.1191309Z             {
2026-06-21T08:16:00.1191785Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.1192330Z               "line": 566
2026-06-21T08:16:00.1192754Z             }
2026-06-21T08:16:00.1193159Z           ]
2026-06-21T08:16:00.1193530Z         },
2026-06-21T08:16:00.1193895Z         "int": {
2026-06-21T08:16:00.1194315Z           "complete": true,
2026-06-21T08:16:00.1194777Z           "evidence": [
2026-06-21T08:16:00.1195188Z             {
2026-06-21T08:16:00.1195654Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-21T08:16:00.1196209Z               "line": 261
2026-06-21T08:16:00.1196633Z             }
2026-06-21T08:16:00.1197009Z           ]
2026-06-21T08:16:00.1197378Z         },
2026-06-21T08:16:00.1197749Z         "unit": {
2026-06-21T08:16:00.1198178Z           "complete": true,
2026-06-21T08:16:00.1198622Z           "evidence": [
2026-06-21T08:16:00.1199121Z             {
2026-06-21T08:16:00.1199584Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-21T08:16:00.1200032Z               "line": 280
2026-06-21T08:16:00.1200365Z             },
2026-06-21T08:16:00.1200685Z             {
2026-06-21T08:16:00.1201089Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.1201816Z               "line": 948
2026-06-21T08:16:00.1202175Z             }
2026-06-21T08:16:00.1202642Z           ]
2026-06-21T08:16:00.1202942Z         }
2026-06-21T08:16:00.1203247Z       }
2026-06-21T08:16:00.1203538Z     },
2026-06-21T08:16:00.1203830Z     {
2026-06-21T08:16:00.1204156Z       "id": "REQ-API-4",
2026-06-21T08:16:00.1206471Z       "title": "api resolves the adapter manifest (+ profile + install dir) from `--adapter name:profile` via the registry when `--manifest` is omitted; `--manifest` becomes an optional OVERRIDE (unregistered / local-dev manifests). Removes the require-both-flags redundancy — a registered adapter's live bringup / digest / capability needs only `--adapter` — and yields the precise install dir (the record's source_dir) rather than the --manifest parent, closing the copy-mode psyche-binary edge (v0.8.0)",
2026-06-21T08:16:00.1208166Z       "requiredStages": [
2026-06-21T08:16:00.1208423Z         "doc",
2026-06-21T08:16:00.1208676Z         "impl",
2026-06-21T08:16:00.1208906Z         "unit"
2026-06-21T08:16:00.1209447Z       ],
2026-06-21T08:16:00.1209762Z       "stages": {
2026-06-21T08:16:00.1210072Z         "doc": {
2026-06-21T08:16:00.1210420Z           "complete": true,
2026-06-21T08:16:00.1210744Z           "evidence": [
2026-06-21T08:16:00.1211035Z             {
2026-06-21T08:16:00.1211388Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.1211825Z               "line": 149
2026-06-21T08:16:00.1212211Z             }
2026-06-21T08:16:00.1212534Z           ]
2026-06-21T08:16:00.1212858Z         },
2026-06-21T08:16:00.1213178Z         "impl": {
2026-06-21T08:16:00.1213531Z           "complete": true,
2026-06-21T08:16:00.1213926Z           "evidence": [
2026-06-21T08:16:00.1214366Z             {
2026-06-21T08:16:00.1214763Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T08:16:00.1215219Z               "line": 484
2026-06-21T08:16:00.1215587Z             }
2026-06-21T08:16:00.1215906Z           ]
2026-06-21T08:16:00.1216246Z         },
2026-06-21T08:16:00.1216585Z         "int": {
2026-06-21T08:16:00.1216928Z           "complete": false,
2026-06-21T08:16:00.1217344Z           "evidence": []
2026-06-21T08:16:00.1217701Z         },
2026-06-21T08:16:00.1218077Z         "unit": {
2026-06-21T08:16:00.1218401Z           "complete": true,
2026-06-21T08:16:00.1218687Z           "evidence": [
2026-06-21T08:16:00.1219012Z             {
2026-06-21T08:16:00.1219278Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T08:16:00.1219602Z               "line": 657
2026-06-21T08:16:00.1219852Z             },
2026-06-21T08:16:00.1220079Z             {
2026-06-21T08:16:00.1220346Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T08:16:00.1220674Z               "line": 681
2026-06-21T08:16:00.1220913Z             },
2026-06-21T08:16:00.1221124Z             {
2026-06-21T08:16:00.1221372Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T08:16:00.1221663Z               "line": 705
2026-06-21T08:16:00.1221905Z             }
2026-06-21T08:16:00.1222115Z           ]
2026-06-21T08:16:00.1222314Z         }
2026-06-21T08:16:00.1222522Z       }
2026-06-21T08:16:00.1222723Z     },
2026-06-21T08:16:00.1222922Z     {
2026-06-21T08:16:00.1223142Z       "id": "REQ-ARCH-1",
2026-06-21T08:16:00.1223442Z       "title": "Many small acyclically-layered crates",
2026-06-21T08:16:00.1223748Z       "requiredStages": [
2026-06-21T08:16:00.1223986Z         "impl"
2026-06-21T08:16:00.1224185Z       ],
2026-06-21T08:16:00.1224395Z       "stages": {
2026-06-21T08:16:00.1224621Z         "doc": {
2026-06-21T08:16:00.1224850Z           "complete": false,
2026-06-21T08:16:00.1225114Z           "evidence": []
2026-06-21T08:16:00.1225351Z         },
2026-06-21T08:16:00.1225552Z         "impl": {
2026-06-21T08:16:00.1225784Z           "complete": true,
2026-06-21T08:16:00.1226032Z           "evidence": [
2026-06-21T08:16:00.1226262Z             {
2026-06-21T08:16:00.1226506Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-21T08:16:00.1227020Z               "line": 18
2026-06-21T08:16:00.1227258Z             },
2026-06-21T08:16:00.1227573Z             {
2026-06-21T08:16:00.1227819Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-21T08:16:00.1228113Z               "line": 12
2026-06-21T08:16:00.1228351Z             },
2026-06-21T08:16:00.1228562Z             {
2026-06-21T08:16:00.1228805Z               "path": "crates/spt-store/src/lib.rs",
2026-06-21T08:16:00.1229171Z               "line": 12
2026-06-21T08:16:00.1229401Z             }
2026-06-21T08:16:00.1229610Z           ]
2026-06-21T08:16:00.1229815Z         },
2026-06-21T08:16:00.1230031Z         "int": {
2026-06-21T08:16:00.1230259Z           "complete": false,
2026-06-21T08:16:00.1230510Z           "evidence": []
2026-06-21T08:16:00.1230730Z         },
2026-06-21T08:16:00.1230934Z         "unit": {
2026-06-21T08:16:00.1231154Z           "complete": false,
2026-06-21T08:16:00.1231397Z           "evidence": []
2026-06-21T08:16:00.1231627Z         }
2026-06-21T08:16:00.1231845Z       }
2026-06-21T08:16:00.1232045Z     },
2026-06-21T08:16:00.1232247Z     {
2026-06-21T08:16:00.1232470Z       "id": "REQ-ARCH-2",
2026-06-21T08:16:00.1232807Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-21T08:16:00.1233162Z       "requiredStages": [
2026-06-21T08:16:00.1233392Z         "impl"
2026-06-21T08:16:00.1233602Z       ],
2026-06-21T08:16:00.1233806Z       "stages": {
2026-06-21T08:16:00.1234021Z         "doc": {
2026-06-21T08:16:00.1234250Z           "complete": false,
2026-06-21T08:16:00.1234499Z           "evidence": []
2026-06-21T08:16:00.1234717Z         },
2026-06-21T08:16:00.1234927Z         "impl": {
2026-06-21T08:16:00.1235148Z           "complete": true,
2026-06-21T08:16:00.1235395Z           "evidence": [
2026-06-21T08:16:00.1235609Z             {
2026-06-21T08:16:00.1235860Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-21T08:16:00.1236150Z               "line": 18
2026-06-21T08:16:00.1236368Z             }
2026-06-21T08:16:00.1236578Z           ]
2026-06-21T08:16:00.1236784Z         },
2026-06-21T08:16:00.1236983Z         "int": {
2026-06-21T08:16:00.1237218Z           "complete": false,
2026-06-21T08:16:00.1237470Z           "evidence": []
2026-06-21T08:16:00.1237686Z         },
2026-06-21T08:16:00.1237875Z         "unit": {
2026-06-21T08:16:00.1238100Z           "complete": false,
2026-06-21T08:16:00.1238347Z           "evidence": []
2026-06-21T08:16:00.1238572Z         }
2026-06-21T08:16:00.1238770Z       }
2026-06-21T08:16:00.1239036Z     },
2026-06-21T08:16:00.1239231Z     {
2026-06-21T08:16:00.1239446Z       "id": "REQ-ARCH-3",
2026-06-21T08:16:00.1239808Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-21T08:16:00.1240180Z       "requiredStages": [
2026-06-21T08:16:00.1240413Z         "impl",
2026-06-21T08:16:00.1240625Z         "unit"
2026-06-21T08:16:00.1240829Z       ],
2026-06-21T08:16:00.1241024Z       "stages": {
2026-06-21T08:16:00.1241233Z         "doc": {
2026-06-21T08:16:00.1241461Z           "complete": false,
2026-06-21T08:16:00.1241705Z           "evidence": []
2026-06-21T08:16:00.1241930Z         },
2026-06-21T08:16:00.1242129Z         "impl": {
2026-06-21T08:16:00.1242353Z           "complete": true,
2026-06-21T08:16:00.1242592Z           "evidence": [
2026-06-21T08:16:00.1242812Z             {
2026-06-21T08:16:00.1243069Z               "path": "crates/spt-proto/src/version.rs",
2026-06-21T08:16:00.1243354Z               "line": 34
2026-06-21T08:16:00.1243585Z             },
2026-06-21T08:16:00.1243795Z             {
2026-06-21T08:16:00.1244037Z               "path": "crates/spt-proto/src/version.rs",
2026-06-21T08:16:00.1244328Z               "line": 41
2026-06-21T08:16:00.1244554Z             }
2026-06-21T08:16:00.1244764Z           ]
2026-06-21T08:16:00.1244962Z         },
2026-06-21T08:16:00.1245172Z         "int": {
2026-06-21T08:16:00.1245403Z           "complete": false,
2026-06-21T08:16:00.1245650Z           "evidence": []
2026-06-21T08:16:00.1245989Z         },
2026-06-21T08:16:00.1246202Z         "unit": {
2026-06-21T08:16:00.1246425Z           "complete": true,
2026-06-21T08:16:00.1246772Z           "evidence": [
2026-06-21T08:16:00.1246997Z             {
2026-06-21T08:16:00.1247253Z               "path": "crates/spt-proto/src/version.rs",
2026-06-21T08:16:00.1247553Z               "line": 51
2026-06-21T08:16:00.1247792Z             },
2026-06-21T08:16:00.1247993Z             {
2026-06-21T08:16:00.1248246Z               "path": "crates/spt-proto/src/version.rs",
2026-06-21T08:16:00.1248532Z               "line": 71
2026-06-21T08:16:00.1248759Z             },
2026-06-21T08:16:00.1249038Z             {
2026-06-21T08:16:00.1249277Z               "path": "crates/spt-proto/src/version.rs",
2026-06-21T08:16:00.1249558Z               "line": 83
2026-06-21T08:16:00.1249781Z             }
2026-06-21T08:16:00.1249982Z           ]
2026-06-21T08:16:00.1250183Z         }
2026-06-21T08:16:00.1250387Z       }
2026-06-21T08:16:00.1250583Z     },
2026-06-21T08:16:00.1250793Z     {
2026-06-21T08:16:00.1251012Z       "id": "REQ-ARCH-4",
2026-06-21T08:16:00.1251341Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-21T08:16:00.1251697Z       "requiredStages": [
2026-06-21T08:16:00.1251936Z         "impl",
2026-06-21T08:16:00.1252151Z         "unit"
2026-06-21T08:16:00.1252355Z       ],
2026-06-21T08:16:00.1252557Z       "stages": {
2026-06-21T08:16:00.1252799Z         "doc": {
2026-06-21T08:16:00.1253013Z           "complete": false,
2026-06-21T08:16:00.1253257Z           "evidence": []
2026-06-21T08:16:00.1253486Z         },
2026-06-21T08:16:00.1253701Z         "impl": {
2026-06-21T08:16:00.1253928Z           "complete": true,
2026-06-21T08:16:00.1254169Z           "evidence": [
2026-06-21T08:16:00.1254398Z             {
2026-06-21T08:16:00.1254651Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.1254946Z               "line": 165
2026-06-21T08:16:00.1255165Z             },
2026-06-21T08:16:00.1255385Z             {
2026-06-21T08:16:00.1255633Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.1255925Z               "line": 188
2026-06-21T08:16:00.1256142Z             },
2026-06-21T08:16:00.1256358Z             {
2026-06-21T08:16:00.1256602Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.1256886Z               "line": 208
2026-06-21T08:16:00.1257112Z             },
2026-06-21T08:16:00.1257313Z             {
2026-06-21T08:16:00.1257562Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.1257852Z               "line": 223
2026-06-21T08:16:00.1258075Z             },
2026-06-21T08:16:00.1258285Z             {
2026-06-21T08:16:00.1258535Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.1258816Z               "line": 273
2026-06-21T08:16:00.1259111Z             }
2026-06-21T08:16:00.1259319Z           ]
2026-06-21T08:16:00.1259519Z         },
2026-06-21T08:16:00.1259716Z         "int": {
2026-06-21T08:16:00.1259960Z           "complete": false,
2026-06-21T08:16:00.1260209Z           "evidence": []
2026-06-21T08:16:00.1260434Z         },
2026-06-21T08:16:00.1260642Z         "unit": {
2026-06-21T08:16:00.1260866Z           "complete": true,
2026-06-21T08:16:00.1261096Z           "evidence": [
2026-06-21T08:16:00.1261319Z             {
2026-06-21T08:16:00.1261563Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.1261839Z               "line": 334
2026-06-21T08:16:00.1262069Z             },
2026-06-21T08:16:00.1262267Z             {
2026-06-21T08:16:00.1262511Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.1262792Z               "line": 344
2026-06-21T08:16:00.1263012Z             },
2026-06-21T08:16:00.1263215Z             {
2026-06-21T08:16:00.1263464Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.1263741Z               "line": 355
2026-06-21T08:16:00.1263965Z             },
2026-06-21T08:16:00.1264174Z             {
2026-06-21T08:16:00.1264516Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.1264848Z               "line": 366
2026-06-21T08:16:00.1265167Z             },
2026-06-21T08:16:00.1265373Z             {
2026-06-21T08:16:00.1265621Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.1265888Z               "line": 378
2026-06-21T08:16:00.1266126Z             },
2026-06-21T08:16:00.1266332Z             {
2026-06-21T08:16:00.1266575Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.1266852Z               "line": 391
2026-06-21T08:16:00.1267076Z             },
2026-06-21T08:16:00.1267284Z             {
2026-06-21T08:16:00.1267531Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.1267811Z               "line": 402
2026-06-21T08:16:00.1268112Z             },
2026-06-21T08:16:00.1268320Z             {
2026-06-21T08:16:00.1268565Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.1285958Z               "line": 419
2026-06-21T08:16:00.1286249Z             },
2026-06-21T08:16:00.1286469Z             {
2026-06-21T08:16:00.1286732Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.1287037Z               "line": 547
2026-06-21T08:16:00.1287270Z             }
2026-06-21T08:16:00.1287470Z           ]
2026-06-21T08:16:00.1287676Z         }
2026-06-21T08:16:00.1287871Z       }
2026-06-21T08:16:00.1288052Z     },
2026-06-21T08:16:00.1288244Z     {
2026-06-21T08:16:00.1288456Z       "id": "REQ-CLI-1",
2026-06-21T08:16:00.1289857Z       "title": "spt endpoint noun namespace: absorbs fork/suspend/wake/shutdown/rename/stop/digest + access (ported 1:1: allow|revoke|open|list, decision 21) + description (ex-resources blurb; bare=show, set=author); merged endpoint list [--local|--subnet <name>] grouped by subnet with SELF pinned, --detail adding the ex-resources yellow-pages blurb projection; bare spt endpoint = the list (M8 decisions 1-2, 25)",
2026-06-21T08:16:00.1291070Z       "requiredStages": [
2026-06-21T08:16:00.1291302Z         "impl",
2026-06-21T08:16:00.1291517Z         "unit"
2026-06-21T08:16:00.1291717Z       ],
2026-06-21T08:16:00.1291923Z       "stages": {
2026-06-21T08:16:00.1292138Z         "doc": {
2026-06-21T08:16:00.1292346Z           "complete": false,
2026-06-21T08:16:00.1292594Z           "evidence": []
2026-06-21T08:16:00.1292819Z         },
2026-06-21T08:16:00.1293024Z         "impl": {
2026-06-21T08:16:00.1293247Z           "complete": true,
2026-06-21T08:16:00.1293486Z           "evidence": [
2026-06-21T08:16:00.1293707Z             {
2026-06-21T08:16:00.1293942Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1294214Z               "line": 225
2026-06-21T08:16:00.1294439Z             },
2026-06-21T08:16:00.1294644Z             {
2026-06-21T08:16:00.1294867Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1295144Z               "line": 1093
2026-06-21T08:16:00.1295364Z             },
2026-06-21T08:16:00.1295569Z             {
2026-06-21T08:16:00.1295812Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1296083Z               "line": 1720
2026-06-21T08:16:00.1296316Z             },
2026-06-21T08:16:00.1296518Z             {
2026-06-21T08:16:00.1296748Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1297015Z               "line": 3124
2026-06-21T08:16:00.1297240Z             }
2026-06-21T08:16:00.1297430Z           ]
2026-06-21T08:16:00.1297626Z         },
2026-06-21T08:16:00.1297835Z         "int": {
2026-06-21T08:16:00.1298054Z           "complete": false,
2026-06-21T08:16:00.1298302Z           "evidence": []
2026-06-21T08:16:00.1298518Z         },
2026-06-21T08:16:00.1298722Z         "unit": {
2026-06-21T08:16:00.1298936Z           "complete": true,
2026-06-21T08:16:00.1299244Z           "evidence": [
2026-06-21T08:16:00.1299458Z             {
2026-06-21T08:16:00.1299681Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1299949Z               "line": 7947
2026-06-21T08:16:00.1300159Z             }
2026-06-21T08:16:00.1300516Z           ]
2026-06-21T08:16:00.1300712Z         }
2026-06-21T08:16:00.1300917Z       }
2026-06-21T08:16:00.1301212Z     },
2026-06-21T08:16:00.1301404Z     {
2026-06-21T08:16:00.1301612Z       "id": "REQ-CLI-2",
2026-06-21T08:16:00.1302506Z       "title": "spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown keeps its name under endpoint); daemon status renders the pump heartbeat (last-tick recency) so a half-dead daemon is never rendered implied-healthy (M8 decisions 5, 23)",
2026-06-21T08:16:00.1303346Z       "requiredStages": [
2026-06-21T08:16:00.1303584Z         "impl",
2026-06-21T08:16:00.1303794Z         "unit"
2026-06-21T08:16:00.1303990Z       ],
2026-06-21T08:16:00.1304190Z       "stages": {
2026-06-21T08:16:00.1304398Z         "doc": {
2026-06-21T08:16:00.1304623Z           "complete": false,
2026-06-21T08:16:00.1304875Z           "evidence": []
2026-06-21T08:16:00.1305103Z         },
2026-06-21T08:16:00.1305309Z         "impl": {
2026-06-21T08:16:00.1305533Z           "complete": true,
2026-06-21T08:16:00.1305776Z           "evidence": [
2026-06-21T08:16:00.1306005Z             {
2026-06-21T08:16:00.1306258Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.1306555Z               "line": 414
2026-06-21T08:16:00.1306786Z             },
2026-06-21T08:16:00.1306984Z             {
2026-06-21T08:16:00.1307223Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-21T08:16:00.1307504Z               "line": 97
2026-06-21T08:16:00.1307727Z             },
2026-06-21T08:16:00.1307932Z             {
2026-06-21T08:16:00.1308181Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-21T08:16:00.1308463Z               "line": 256
2026-06-21T08:16:00.1308681Z             },
2026-06-21T08:16:00.1308872Z             {
2026-06-21T08:16:00.1309186Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1309450Z               "line": 434
2026-06-21T08:16:00.1309672Z             },
2026-06-21T08:16:00.1309875Z             {
2026-06-21T08:16:00.1310105Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1310376Z               "line": 1174
2026-06-21T08:16:00.1310594Z             },
2026-06-21T08:16:00.1310800Z             {
2026-06-21T08:16:00.1311029Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1311292Z               "line": 1958
2026-06-21T08:16:00.1311520Z             },
2026-06-21T08:16:00.1311716Z             {
2026-06-21T08:16:00.1311946Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1312210Z               "line": 2047
2026-06-21T08:16:00.1312432Z             },
2026-06-21T08:16:00.1312638Z             {
2026-06-21T08:16:00.1312865Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1313132Z               "line": 2108
2026-06-21T08:16:00.1313348Z             }
2026-06-21T08:16:00.1313544Z           ]
2026-06-21T08:16:00.1313748Z         },
2026-06-21T08:16:00.1313934Z         "int": {
2026-06-21T08:16:00.1314159Z           "complete": false,
2026-06-21T08:16:00.1314391Z           "evidence": []
2026-06-21T08:16:00.1314620Z         },
2026-06-21T08:16:00.1314827Z         "unit": {
2026-06-21T08:16:00.1315044Z           "complete": true,
2026-06-21T08:16:00.1315283Z           "evidence": [
2026-06-21T08:16:00.1315493Z             {
2026-06-21T08:16:00.1315750Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-21T08:16:00.1316050Z               "line": 338
2026-06-21T08:16:00.1316270Z             },
2026-06-21T08:16:00.1316480Z             {
2026-06-21T08:16:00.1316714Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1316985Z               "line": 8102
2026-06-21T08:16:00.1317208Z             }
2026-06-21T08:16:00.1317413Z           ]
2026-06-21T08:16:00.1317611Z         }
2026-06-21T08:16:00.1317817Z       }
2026-06-21T08:16:00.1318007Z     },
2026-06-21T08:16:00.1318206Z     {
2026-06-21T08:16:00.1318417Z       "id": "REQ-CLI-3",
2026-06-21T08:16:00.1319389Z       "title": "Agent hot path stays flat across the M8 reorg: send/ring/ready/whoami/how-to unchanged; notify moves to subnet notify while notif stays top-level; breaking renames land clean with no deprecation shims (zero external CLI consumers pre-spt-claude-code) (M8 decisions 3-4, 9)",
2026-06-21T08:16:00.1320454Z       "requiredStages": [
2026-06-21T08:16:00.1320688Z         "impl",
2026-06-21T08:16:00.1320893Z         "unit"
2026-06-21T08:16:00.1321097Z       ],
2026-06-21T08:16:00.1321289Z       "stages": {
2026-06-21T08:16:00.1321503Z         "doc": {
2026-06-21T08:16:00.1321722Z           "complete": false,
2026-06-21T08:16:00.1321965Z           "evidence": []
2026-06-21T08:16:00.1322191Z         },
2026-06-21T08:16:00.1322395Z         "impl": {
2026-06-21T08:16:00.1322614Z           "complete": true,
2026-06-21T08:16:00.1322856Z           "evidence": [
2026-06-21T08:16:00.1323068Z             {
2026-06-21T08:16:00.1323302Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1323584Z               "line": 1087
2026-06-21T08:16:00.1323822Z             }
2026-06-21T08:16:00.1324016Z           ]
2026-06-21T08:16:00.1324218Z         },
2026-06-21T08:16:00.1324424Z         "int": {
2026-06-21T08:16:00.1324642Z           "complete": false,
2026-06-21T08:16:00.1324880Z           "evidence": []
2026-06-21T08:16:00.1325110Z         },
2026-06-21T08:16:00.1325305Z         "unit": {
2026-06-21T08:16:00.1325528Z           "complete": true,
2026-06-21T08:16:00.1325767Z           "evidence": [
2026-06-21T08:16:00.1325985Z             {
2026-06-21T08:16:00.1326223Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1326496Z               "line": 7912
2026-06-21T08:16:00.1326725Z             }
2026-06-21T08:16:00.1326925Z           ]
2026-06-21T08:16:00.1327130Z         }
2026-06-21T08:16:00.1327326Z       }
2026-06-21T08:16:00.1327535Z     },
2026-06-21T08:16:00.1327731Z     {
2026-06-21T08:16:00.1327939Z       "id": "REQ-CLI-4",
2026-06-21T08:16:00.1330412Z       "title": "User-facing CLI output is human-readable: DIRECT-USER commands (e.g. adapter update/list/use) render friendly prose instead of raw CODE:RESULT markers — \"claude-spt is up to date (0.2.0).\" not \"ADAPTER_UPDATE_UPTODATE:claude-spt: installed 0.2.0, latest 0.2.0\". Strictly bounded to the direct-user surface: the adapter-PARSED bringup tokens (SEEDED/BOUND/READY/NO_SEED on seed/listen, which adapters grep) stay machine-parseable — humanization is additive (a human line beside the marker, or a --porcelain/--quiet split), never a silent rename of a dual-contract marker. The user-facing bringup composition belongs to the adapter (perri); this REQ owns only the direct-user CLI surface. (v0.9.0)",
2026-06-21T08:16:00.1332325Z       "requiredStages": [],
2026-06-21T08:16:00.1332563Z       "stages": {
2026-06-21T08:16:00.1332789Z         "doc": {
2026-06-21T08:16:00.1333008Z           "complete": false,
2026-06-21T08:16:00.1333245Z           "evidence": []
2026-06-21T08:16:00.1333477Z         },
2026-06-21T08:16:00.1333667Z         "impl": {
2026-06-21T08:16:00.1333910Z           "complete": true,
2026-06-21T08:16:00.1334149Z           "evidence": [
2026-06-21T08:16:00.1334378Z             {
2026-06-21T08:16:00.1334616Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1334887Z               "line": 5678
2026-06-21T08:16:00.1335107Z             }
2026-06-21T08:16:00.1335323Z           ]
2026-06-21T08:16:00.1335517Z         },
2026-06-21T08:16:00.1335726Z         "int": {
2026-06-21T08:16:00.1335943Z           "complete": false,
2026-06-21T08:16:00.1336192Z           "evidence": []
2026-06-21T08:16:00.1336408Z         },
2026-06-21T08:16:00.1336613Z         "unit": {
2026-06-21T08:16:00.1336831Z           "complete": false,
2026-06-21T08:16:00.1337070Z           "evidence": []
2026-06-21T08:16:00.1337300Z         }
2026-06-21T08:16:00.1337490Z       }
2026-06-21T08:16:00.1337714Z     },
2026-06-21T08:16:00.1337910Z     {
2026-06-21T08:16:00.1338134Z       "id": "REQ-CLI-HELP-MARKDOWN",
2026-06-21T08:16:00.1341376Z       "title": "`spt --help` (and every subcommand --help) renders the inline Markdown authored in the clap doc-comments as terminal styling, never as literal markers: `**bold**` → ANSI bold, `` `code` `` → ANSI cyan, `[text](url)` → `text`. The markers are STRIPPED either way — a raw `**` or backtick must NEVER reach the user (the operator-reported v0.12.0 defect: help text reads `**ctrl-b**` and stray backticks verbatim). Color/bold escapes are emitted ONLY when the help is going to a real terminal AND color is not suppressed (NO_COLOR unset · CLICOLOR != 0 · CLICOLOR_FORCE forces on); a pipe / redirect / CI / NO_COLOR falls back to strip-only (clean plaintext, zero escapes) so machine-readable help is byte-identical regardless of marker syntax. Pure transform over the clap-rendered help string at the single run()/bare_invocation chokepoint; preserves pre-existing ANSI (CSI sequences passed through untouched), never spans markers across a newline, leaves unmatched/empty markers literal, and does not alter the help layout. (v0.12.1)",
2026-06-21T08:16:00.1344371Z       "requiredStages": [
2026-06-21T08:16:00.1344609Z         "impl",
2026-06-21T08:16:00.1344832Z         "unit"
2026-06-21T08:16:00.1345042Z       ],
2026-06-21T08:16:00.1345239Z       "stages": {
2026-06-21T08:16:00.1345452Z         "doc": {
2026-06-21T08:16:00.1345677Z           "complete": false,
2026-06-21T08:16:00.1345915Z           "evidence": []
2026-06-21T08:16:00.1346140Z         },
2026-06-21T08:16:00.1346344Z         "impl": {
2026-06-21T08:16:00.1346569Z           "complete": true,
2026-06-21T08:16:00.1346805Z           "evidence": [
2026-06-21T08:16:00.1347025Z             {
2026-06-21T08:16:00.1347264Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T08:16:00.1347550Z               "line": 8
2026-06-21T08:16:00.1347774Z             },
2026-06-21T08:16:00.1347978Z             {
2026-06-21T08:16:00.1348212Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T08:16:00.1348489Z               "line": 51
2026-06-21T08:16:00.1348713Z             },
2026-06-21T08:16:00.1348931Z             {
2026-06-21T08:16:00.1349257Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T08:16:00.1349544Z               "line": 82
2026-06-21T08:16:00.1349774Z             },
2026-06-21T08:16:00.1349977Z             {
2026-06-21T08:16:00.1350211Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T08:16:00.1350484Z               "line": 229
2026-06-21T08:16:00.1350713Z             }
2026-06-21T08:16:00.1350927Z           ]
2026-06-21T08:16:00.1351136Z         },
2026-06-21T08:16:00.1351333Z         "int": {
2026-06-21T08:16:00.1351557Z           "complete": false,
2026-06-21T08:16:00.1351803Z           "evidence": []
2026-06-21T08:16:00.1352026Z         },
2026-06-21T08:16:00.1352225Z         "unit": {
2026-06-21T08:16:00.1352449Z           "complete": true,
2026-06-21T08:16:00.1352688Z           "evidence": [
2026-06-21T08:16:00.1352908Z             {
2026-06-21T08:16:00.1353140Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T08:16:00.1353426Z               "line": 249
2026-06-21T08:16:00.1353655Z             },
2026-06-21T08:16:00.1353852Z             {
2026-06-21T08:16:00.1354094Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T08:16:00.1354355Z               "line": 256
2026-06-21T08:16:00.1354579Z             },
2026-06-21T08:16:00.1354782Z             {
2026-06-21T08:16:00.1355015Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T08:16:00.1355288Z               "line": 263
2026-06-21T08:16:00.1355512Z             },
2026-06-21T08:16:00.1355721Z             {
2026-06-21T08:16:00.1355941Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T08:16:00.1356217Z               "line": 270
2026-06-21T08:16:00.1356443Z             },
2026-06-21T08:16:00.1356656Z             {
2026-06-21T08:16:00.1356884Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T08:16:00.1357157Z               "line": 297
2026-06-21T08:16:00.1357385Z             },
2026-06-21T08:16:00.1357594Z             {
2026-06-21T08:16:00.1357937Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T08:16:00.1358214Z               "line": 307
2026-06-21T08:16:00.1358533Z             },
2026-06-21T08:16:00.1358744Z             {
2026-06-21T08:16:00.1359059Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T08:16:00.1359331Z               "line": 317
2026-06-21T08:16:00.1359553Z             },
2026-06-21T08:16:00.1359756Z             {
2026-06-21T08:16:00.1359995Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T08:16:00.1360267Z               "line": 331
2026-06-21T08:16:00.1360494Z             },
2026-06-21T08:16:00.1360695Z             {
2026-06-21T08:16:00.1360920Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T08:16:00.1361201Z               "line": 340
2026-06-21T08:16:00.1361420Z             },
2026-06-21T08:16:00.1361625Z             {
2026-06-21T08:16:00.1361870Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T08:16:00.1362146Z               "line": 348
2026-06-21T08:16:00.1362372Z             }
2026-06-21T08:16:00.1362582Z           ]
2026-06-21T08:16:00.1362766Z         }
2026-06-21T08:16:00.1362967Z       }
2026-06-21T08:16:00.1363167Z     },
2026-06-21T08:16:00.1363366Z     {
2026-06-21T08:16:00.1363587Z       "id": "REQ-CLI-OUTPUT-MARKDOWN",
2026-06-21T08:16:00.1373412Z       "title": "Human-prose COMMAND OUTPUT (not just `--help`) renders the inline Markdown authored in its source strings as terminal styling, never literal markers: `` `code` `` → ANSI cyan, `**bold**` → ANSI bold, `[text](url)` → `text`, markers STRIPPED either way. REQ-CLI-HELP-MARKDOWN only hooked the clap `--help` chokepoint, so command output still printed raw Markdown (audit: `spt how-to` topic text showed `# headers`/backticks, `spt subnet`/`subnet status` hint footers showed stray backticks, the daemon-status `not running` line, the `ENDPOINT_RUN_STARTED` attach hint, and the daemon's `SUBNET_DETACHED` startup line — 13 prose surfaces). The same line-bounded pure `helpfmt::render` is applied at each emit site, color-gated by the OUTPUT STREAM's own tty (`stdout_color` for print/println, the new `stderr_color` for eprintln). HARNESS-SAFETY (binding): color is tty-gated, so an adapter (piped / non-tty / NO_COLOR) gets STRIP mode = zero ANSI + markers removed; every dual-contract MACHINE token on a rendered line (`ENDPOINT_RUN_STARTED:`, `NO_SUCH_TOPIC:`, `SUBNET_DETACHED:`) carries NO Markdown markers, so it survives strip byte-intact — the adapter parse is never perturbed. Pure-machine output (the `<EVENT …>` envelope, bringup parse-tokens SEEDED/BOUND/READY/NO_SEED, `--json`, QR) is NEVER routed through the renderer. The one spt-daemon source string (`SUBNET_DETACHED`, the bin-local renderer is unreachable from the daemon crate) is authored marker-free instead. (v0.12.2)",
2026-06-21T08:16:00.1378414Z       "requiredStages": [
2026-06-21T08:16:00.1378710Z         "impl",
2026-06-21T08:16:00.1379053Z         "unit"
2026-06-21T08:16:00.1379315Z       ],
2026-06-21T08:16:00.1379564Z       "stages": {
2026-06-21T08:16:00.1379845Z         "doc": {
2026-06-21T08:16:00.1380113Z           "complete": false,
2026-06-21T08:16:00.1380442Z           "evidence": []
2026-06-21T08:16:00.1380687Z         },
2026-06-21T08:16:00.1380890Z         "impl": {
2026-06-21T08:16:00.1381110Z           "complete": true,
2026-06-21T08:16:00.1381353Z           "evidence": [
2026-06-21T08:16:00.1381586Z             {
2026-06-21T08:16:00.1381844Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.1382140Z               "line": 141
2026-06-21T08:16:00.1382370Z             },
2026-06-21T08:16:00.1382588Z             {
2026-06-21T08:16:00.1382826Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1383102Z               "line": 1376
2026-06-21T08:16:00.1383333Z             },
2026-06-21T08:16:00.1383550Z             {
2026-06-21T08:16:00.1383791Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1384059Z               "line": 2145
2026-06-21T08:16:00.1384283Z             },
2026-06-21T08:16:00.1384740Z             {
2026-06-21T08:16:00.1384979Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1385364Z               "line": 4368
2026-06-21T08:16:00.1385589Z             },
2026-06-21T08:16:00.1385804Z             {
2026-06-21T08:16:00.1386045Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1386320Z               "line": 4466
2026-06-21T08:16:00.1386554Z             },
2026-06-21T08:16:00.1386763Z             {
2026-06-21T08:16:00.1386992Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1387269Z               "line": 5257
2026-06-21T08:16:00.1387493Z             },
2026-06-21T08:16:00.1387692Z             {
2026-06-21T08:16:00.1387951Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T08:16:00.1388231Z               "line": 39
2026-06-21T08:16:00.1388462Z             }
2026-06-21T08:16:00.1388661Z           ]
2026-06-21T08:16:00.1388856Z         },
2026-06-21T08:16:00.1389128Z         "int": {
2026-06-21T08:16:00.1389351Z           "complete": false,
2026-06-21T08:16:00.1389594Z           "evidence": []
2026-06-21T08:16:00.1389829Z         },
2026-06-21T08:16:00.1390048Z         "unit": {
2026-06-21T08:16:00.1398115Z           "complete": true,
2026-06-21T08:16:00.1398439Z           "evidence": [
2026-06-21T08:16:00.1398683Z             {
2026-06-21T08:16:00.1398926Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1399299Z               "line": 10272
2026-06-21T08:16:00.1399544Z             },
2026-06-21T08:16:00.1399755Z             {
2026-06-21T08:16:00.1400012Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T08:16:00.1400303Z               "line": 281
2026-06-21T08:16:00.1400536Z             },
2026-06-21T08:16:00.1400760Z             {
2026-06-21T08:16:00.1400999Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T08:16:00.1401281Z               "line": 358
2026-06-21T08:16:00.1401514Z             },
2026-06-21T08:16:00.1401737Z             {
2026-06-21T08:16:00.1402002Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T08:16:00.1402284Z               "line": 381
2026-06-21T08:16:00.1402511Z             },
2026-06-21T08:16:00.1402716Z             {
2026-06-21T08:16:00.1402951Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T08:16:00.1403227Z               "line": 395
2026-06-21T08:16:00.1403442Z             }
2026-06-21T08:16:00.1403646Z           ]
2026-06-21T08:16:00.1403838Z         }
2026-06-21T08:16:00.1404042Z       }
2026-06-21T08:16:00.1404242Z     },
2026-06-21T08:16:00.1404444Z     {
2026-06-21T08:16:00.1404660Z       "id": "REQ-CONSENT-1",
2026-06-21T08:16:00.1406008Z       "title": "Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, subnet-settable (replicates as security material near the trust store), revocable; gated-capability ids (remote-exec, instantiate-anywhere) reserved-but-refusing; v1 consumers are the shell spawn gates (CONTEXT Consent & security gates)",
2026-06-21T08:16:00.1407100Z       "requiredStages": [
2026-06-21T08:16:00.1407342Z         "impl",
2026-06-21T08:16:00.1407554Z         "unit"
2026-06-21T08:16:00.1407769Z       ],
2026-06-21T08:16:00.1407974Z       "stages": {
2026-06-21T08:16:00.1408193Z         "doc": {
2026-06-21T08:16:00.1408418Z           "complete": false,
2026-06-21T08:16:00.1408670Z           "evidence": []
2026-06-21T08:16:00.1408895Z         },
2026-06-21T08:16:00.1409229Z         "impl": {
2026-06-21T08:16:00.1409466Z           "complete": true,
2026-06-21T08:16:00.1409700Z           "evidence": [
2026-06-21T08:16:00.1409925Z             {
2026-06-21T08:16:00.1410186Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T08:16:00.1410481Z               "line": 27
2026-06-21T08:16:00.1410705Z             },
2026-06-21T08:16:00.1410906Z             {
2026-06-21T08:16:00.1411163Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T08:16:00.1411455Z               "line": 75
2026-06-21T08:16:00.1411682Z             },
2026-06-21T08:16:00.1412084Z             {
2026-06-21T08:16:00.1412335Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T08:16:00.1412729Z               "line": 98
2026-06-21T08:16:00.1412961Z             },
2026-06-21T08:16:00.1413172Z             {
2026-06-21T08:16:00.1413425Z               "path": "crates/spt-store/src/grants.rs",
2026-06-21T08:16:00.1413721Z               "line": 82
2026-06-21T08:16:00.1413954Z             },
2026-06-21T08:16:00.1414164Z             {
2026-06-21T08:16:00.1414412Z               "path": "crates/spt-store/src/grants.rs",
2026-06-21T08:16:00.1414699Z               "line": 109
2026-06-21T08:16:00.1414932Z             },
2026-06-21T08:16:00.1415135Z             {
2026-06-21T08:16:00.1415369Z               "path": "crates/spt-store/src/grants.rs",
2026-06-21T08:16:00.1415663Z               "line": 127
2026-06-21T08:16:00.1415886Z             },
2026-06-21T08:16:00.1416087Z             {
2026-06-21T08:16:00.1416325Z               "path": "crates/spt-store/src/grants.rs",
2026-06-21T08:16:00.1416626Z               "line": 142
2026-06-21T08:16:00.1416844Z             },
2026-06-21T08:16:00.1417054Z             {
2026-06-21T08:16:00.1417289Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1417571Z               "line": 7048
2026-06-21T08:16:00.1417831Z             }
2026-06-21T08:16:00.1418067Z           ]
2026-06-21T08:16:00.1418273Z         },
2026-06-21T08:16:00.1418481Z         "int": {
2026-06-21T08:16:00.1418710Z           "complete": false,
2026-06-21T08:16:00.1419025Z           "evidence": []
2026-06-21T08:16:00.1419249Z         },
2026-06-21T08:16:00.1419455Z         "unit": {
2026-06-21T08:16:00.1419688Z           "complete": true,
2026-06-21T08:16:00.1419936Z           "evidence": [
2026-06-21T08:16:00.1420165Z             {
2026-06-21T08:16:00.1420419Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T08:16:00.1420721Z               "line": 334
2026-06-21T08:16:00.1420959Z             },
2026-06-21T08:16:00.1421166Z             {
2026-06-21T08:16:00.1421414Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T08:16:00.1421719Z               "line": 380
2026-06-21T08:16:00.1421956Z             },
2026-06-21T08:16:00.1422161Z             {
2026-06-21T08:16:00.1422405Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T08:16:00.1422687Z               "line": 391
2026-06-21T08:16:00.1422909Z             },
2026-06-21T08:16:00.1423113Z             {
2026-06-21T08:16:00.1423351Z               "path": "crates/spt-store/src/grants.rs",
2026-06-21T08:16:00.1423637Z               "line": 165
2026-06-21T08:16:00.1423884Z             },
2026-06-21T08:16:00.1424090Z             {
2026-06-21T08:16:00.1424333Z               "path": "crates/spt-store/src/grants.rs",
2026-06-21T08:16:00.1424619Z               "line": 184
2026-06-21T08:16:00.1424853Z             },
2026-06-21T08:16:00.1425057Z             {
2026-06-21T08:16:00.1425311Z               "path": "crates/spt-store/src/grants.rs",
2026-06-21T08:16:00.1425593Z               "line": 204
2026-06-21T08:16:00.1425824Z             },
2026-06-21T08:16:00.1426027Z             {
2026-06-21T08:16:00.1426266Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1426548Z               "line": 8334
2026-06-21T08:16:00.1426775Z             }
2026-06-21T08:16:00.1426981Z           ]
2026-06-21T08:16:00.1427182Z         }
2026-06-21T08:16:00.1427386Z       }
2026-06-21T08:16:00.1427590Z     },
2026-06-21T08:16:00.1427797Z     {
2026-06-21T08:16:00.1428020Z       "id": "REQ-CONSENT-2",
2026-06-21T08:16:00.1429123Z       "title": "Interactive consent escalation: an ungated high-risk action routes a consent prompt to the user's most-recently-active session; allow-once / allow-always (writes a grant) / deny; pre-consent flags (can_shutdown, shell_wake_spawn_anywhere) author grants via manifest/settings (CONTEXT Consent & security gates)",
2026-06-21T08:16:00.1430096Z       "requiredStages": [
2026-06-21T08:16:00.1430330Z         "impl",
2026-06-21T08:16:00.1430664Z         "unit"
2026-06-21T08:16:00.1430873Z       ],
2026-06-21T08:16:00.1431082Z       "stages": {
2026-06-21T08:16:00.1431435Z         "doc": {
2026-06-21T08:16:00.1431654Z           "complete": false,
2026-06-21T08:16:00.1431911Z           "evidence": []
2026-06-21T08:16:00.1432140Z         },
2026-06-21T08:16:00.1432350Z         "impl": {
2026-06-21T08:16:00.1432580Z           "complete": true,
2026-06-21T08:16:00.1432812Z           "evidence": [
2026-06-21T08:16:00.1433060Z             {
2026-06-21T08:16:00.1433309Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T08:16:00.1433598Z               "line": 140
2026-06-21T08:16:00.1433829Z             },
2026-06-21T08:16:00.1434030Z             {
2026-06-21T08:16:00.1434278Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T08:16:00.1434565Z               "line": 165
2026-06-21T08:16:00.1434798Z             },
2026-06-21T08:16:00.1435007Z             {
2026-06-21T08:16:00.1435255Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T08:16:00.1435560Z               "line": 199
2026-06-21T08:16:00.1435795Z             },
2026-06-21T08:16:00.1436013Z             {
2026-06-21T08:16:00.1436270Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T08:16:00.1436563Z               "line": 241
2026-06-21T08:16:00.1436788Z             },
2026-06-21T08:16:00.1436987Z             {
2026-06-21T08:16:00.1437240Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T08:16:00.1437527Z               "line": 269
2026-06-21T08:16:00.1437746Z             },
2026-06-21T08:16:00.1437956Z             {
2026-06-21T08:16:00.1438194Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T08:16:00.1438484Z               "line": 300
2026-06-21T08:16:00.1438715Z             },
2026-06-21T08:16:00.1438922Z             {
2026-06-21T08:16:00.1439225Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1439520Z               "line": 6839
2026-06-21T08:16:00.1439741Z             },
2026-06-21T08:16:00.1439946Z             {
2026-06-21T08:16:00.1440174Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1440464Z               "line": 6897
2026-06-21T08:16:00.1440693Z             }
2026-06-21T08:16:00.1440900Z           ]
2026-06-21T08:16:00.1441118Z         },
2026-06-21T08:16:00.1441323Z         "int": {
2026-06-21T08:16:00.1441549Z           "complete": false,
2026-06-21T08:16:00.1441798Z           "evidence": []
2026-06-21T08:16:00.1442028Z         },
2026-06-21T08:16:00.1442224Z         "unit": {
2026-06-21T08:16:00.1442447Z           "complete": true,
2026-06-21T08:16:00.1442700Z           "evidence": [
2026-06-21T08:16:00.1442920Z             {
2026-06-21T08:16:00.1443164Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T08:16:00.1443455Z               "line": 419
2026-06-21T08:16:00.1443682Z             },
2026-06-21T08:16:00.1443887Z             {
2026-06-21T08:16:00.1444144Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T08:16:00.1444433Z               "line": 436
2026-06-21T08:16:00.1444661Z             },
2026-06-21T08:16:00.1444871Z             {
2026-06-21T08:16:00.1445110Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T08:16:00.1445392Z               "line": 472
2026-06-21T08:16:00.1445619Z             },
2026-06-21T08:16:00.1445830Z             {
2026-06-21T08:16:00.1446078Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T08:16:00.1446365Z               "line": 516
2026-06-21T08:16:00.1446598Z             },
2026-06-21T08:16:00.1446703Z             {
2026-06-21T08:16:00.1446844Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1446963Z               "line": 9614
2026-06-21T08:16:00.1447077Z             },
2026-06-21T08:16:00.1447180Z             {
2026-06-21T08:16:00.1447314Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1447434Z               "line": 9696
2026-06-21T08:16:00.1447537Z             }
2026-06-21T08:16:00.1447639Z           ]
2026-06-21T08:16:00.1447857Z         }
2026-06-21T08:16:00.1447968Z       }
2026-06-21T08:16:00.1448073Z     },
2026-06-21T08:16:00.1448311Z     {
2026-06-21T08:16:00.1448430Z       "id": "REQ-CONSENT-3",
2026-06-21T08:16:00.1450630Z       "title": "Per-capability approval gates (class-keyed): the require_approval enum may ride INDIVIDUAL [shell.capabilities] entries — gating the dangerous ACT, not just the spawn — with an optional class_key scoping the grant qualifier finer than the capability id ((owner endpoint x device class x node); a remembered HID-class attach grant never authorizes a storage-class attach). Reuses the grant store + interactive escalation + tighten-only floor (REQ-CONSENT-1/2 plumbing). Spawn gates govern EXISTENCE; capability gates govern ACTS — an explicitly distinct invariant (CONTEXT:283, ratified 2026-06-11 Gateway grill).",
2026-06-21T08:16:00.1450753Z       "requiredStages": [
2026-06-21T08:16:00.1450859Z         "doc",
2026-06-21T08:16:00.1450963Z         "impl",
2026-06-21T08:16:00.1451087Z         "unit",
2026-06-21T08:16:00.1451193Z         "int"
2026-06-21T08:16:00.1451297Z       ],
2026-06-21T08:16:00.1451411Z       "stages": {
2026-06-21T08:16:00.1451527Z         "doc": {
2026-06-21T08:16:00.1451636Z           "complete": true,
2026-06-21T08:16:00.1451751Z           "evidence": [
2026-06-21T08:16:00.1451860Z             {
2026-06-21T08:16:00.1451979Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.1452090Z               "line": 304
2026-06-21T08:16:00.1452185Z             }
2026-06-21T08:16:00.1452292Z           ]
2026-06-21T08:16:00.1452397Z         },
2026-06-21T08:16:00.1452513Z         "impl": {
2026-06-21T08:16:00.1452640Z           "complete": true,
2026-06-21T08:16:00.1452755Z           "evidence": [
2026-06-21T08:16:00.1452861Z             {
2026-06-21T08:16:00.1453022Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T08:16:00.1453141Z               "line": 123
2026-06-21T08:16:00.1453245Z             },
2026-06-21T08:16:00.1453351Z             {
2026-06-21T08:16:00.1453518Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T08:16:00.1453623Z               "line": 162
2026-06-21T08:16:00.1453743Z             },
2026-06-21T08:16:00.1453847Z             {
2026-06-21T08:16:00.1454000Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T08:16:00.1454114Z               "line": 291
2026-06-21T08:16:00.1454218Z             },
2026-06-21T08:16:00.1454329Z             {
2026-06-21T08:16:00.1454480Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.1454594Z               "line": 574
2026-06-21T08:16:00.1454704Z             },
2026-06-21T08:16:00.1454816Z             {
2026-06-21T08:16:00.1454969Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.1455080Z               "line": 824
2026-06-21T08:16:00.1455178Z             },
2026-06-21T08:16:00.1455279Z             {
2026-06-21T08:16:00.1455413Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1455522Z               "line": 6965
2026-06-21T08:16:00.1455633Z             }
2026-06-21T08:16:00.1455746Z           ]
2026-06-21T08:16:00.1455851Z         },
2026-06-21T08:16:00.1455966Z         "int": {
2026-06-21T08:16:00.1456085Z           "complete": true,
2026-06-21T08:16:00.1456199Z           "evidence": [
2026-06-21T08:16:00.1456309Z             {
2026-06-21T08:16:00.1456466Z               "path": "crates/spt/tests/shell_actgate_e2e.rs",
2026-06-21T08:16:00.1456587Z               "line": 16
2026-06-21T08:16:00.1456685Z             }
2026-06-21T08:16:00.1456800Z           ]
2026-06-21T08:16:00.1456901Z         },
2026-06-21T08:16:00.1457014Z         "unit": {
2026-06-21T08:16:00.1457134Z           "complete": true,
2026-06-21T08:16:00.1457249Z           "evidence": [
2026-06-21T08:16:00.1457362Z             {
2026-06-21T08:16:00.1457509Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T08:16:00.1457627Z               "line": 1019
2026-06-21T08:16:00.1457731Z             },
2026-06-21T08:16:00.1457960Z             {
2026-06-21T08:16:00.1458107Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T08:16:00.1458318Z               "line": 1066
2026-06-21T08:16:00.1458426Z             },
2026-06-21T08:16:00.1458533Z             {
2026-06-21T08:16:00.1458689Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.1458804Z               "line": 1394
2026-06-21T08:16:00.1458914Z             }
2026-06-21T08:16:00.1459105Z           ]
2026-06-21T08:16:00.1459219Z         }
2026-06-21T08:16:00.1459333Z       }
2026-06-21T08:16:00.1459429Z     },
2026-06-21T08:16:00.1459530Z     {
2026-06-21T08:16:00.1459695Z       "id": "REQ-CONV-1",
2026-06-21T08:16:00.1461147Z       "title": "Peer address seeding, both cold starts: durable peer-addrs.json (identity dir) maps peer pubkey → last-known dialable address; the pump's resolver consults it FIRST with id-only discovery fallback on miss or dial failure (a stale addr never strands a peer); written by the pairing ceremony (both sides, from the live connection) and by the pump on successful connect; post-join first sync and post-restart resync converge in seconds, not ~1 min (M8 decisions 14, 20)",
2026-06-21T08:16:00.1461294Z       "requiredStages": [
2026-06-21T08:16:00.1461405Z         "impl",
2026-06-21T08:16:00.1461513Z         "unit"
2026-06-21T08:16:00.1461618Z       ],
2026-06-21T08:16:00.1461724Z       "stages": {
2026-06-21T08:16:00.1461833Z         "doc": {
2026-06-21T08:16:00.1461952Z           "complete": false,
2026-06-21T08:16:00.1462077Z           "evidence": []
2026-06-21T08:16:00.1462176Z         },
2026-06-21T08:16:00.1462287Z         "impl": {
2026-06-21T08:16:00.1462406Z           "complete": true,
2026-06-21T08:16:00.1462530Z           "evidence": [
2026-06-21T08:16:00.1462626Z             {
2026-06-21T08:16:00.1462791Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.1462914Z               "line": 988
2026-06-21T08:16:00.1463020Z             },
2026-06-21T08:16:00.1463130Z             {
2026-06-21T08:16:00.1463292Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T08:16:00.1463421Z               "line": 94
2026-06-21T08:16:00.1463524Z             },
2026-06-21T08:16:00.1463631Z             {
2026-06-21T08:16:00.1463787Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T08:16:00.1463897Z               "line": 345
2026-06-21T08:16:00.1464012Z             },
2026-06-21T08:16:00.1464116Z             {
2026-06-21T08:16:00.1464274Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T08:16:00.1464392Z               "line": 387
2026-06-21T08:16:00.1464497Z             },
2026-06-21T08:16:00.1464599Z             {
2026-06-21T08:16:00.1464750Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T08:16:00.1464870Z               "line": 472
2026-06-21T08:16:00.1464985Z             },
2026-06-21T08:16:00.1465093Z             {
2026-06-21T08:16:00.1465255Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.1465371Z               "line": 667
2026-06-21T08:16:00.1465485Z             },
2026-06-21T08:16:00.1465587Z             {
2026-06-21T08:16:00.1465743Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.1465848Z               "line": 693
2026-06-21T08:16:00.1465963Z             },
2026-06-21T08:16:00.1466067Z             {
2026-06-21T08:16:00.1466217Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T08:16:00.1466335Z               "line": 369
2026-06-21T08:16:00.1466439Z             },
2026-06-21T08:16:00.1466550Z             {
2026-06-21T08:16:00.1466697Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-21T08:16:00.1466822Z               "line": 19
2026-06-21T08:16:00.1466926Z             }
2026-06-21T08:16:00.1467031Z           ]
2026-06-21T08:16:00.1467142Z         },
2026-06-21T08:16:00.1467245Z         "int": {
2026-06-21T08:16:00.1467369Z           "complete": false,
2026-06-21T08:16:00.1467486Z           "evidence": []
2026-06-21T08:16:00.1467708Z         },
2026-06-21T08:16:00.1467824Z         "unit": {
2026-06-21T08:16:00.1467941Z           "complete": true,
2026-06-21T08:16:00.1468146Z           "evidence": [
2026-06-21T08:16:00.1468267Z             {
2026-06-21T08:16:00.1468425Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.1468535Z               "line": 1263
2026-06-21T08:16:00.1468644Z             },
2026-06-21T08:16:00.1468755Z             {
2026-06-21T08:16:00.1468906Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-21T08:16:00.1469088Z               "line": 108
2026-06-21T08:16:00.1469198Z             },
2026-06-21T08:16:00.1469311Z             {
2026-06-21T08:16:00.1469464Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-21T08:16:00.1469583Z               "line": 134
2026-06-21T08:16:00.1469694Z             },
2026-06-21T08:16:00.1469798Z             {
2026-06-21T08:16:00.1469955Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-21T08:16:00.1470070Z               "line": 144
2026-06-21T08:16:00.1470184Z             }
2026-06-21T08:16:00.1470290Z           ]
2026-06-21T08:16:00.1470404Z         }
2026-06-21T08:16:00.1470508Z       }
2026-06-21T08:16:00.1470617Z     },
2026-06-21T08:16:00.1470717Z     {
2026-06-21T08:16:00.1470834Z       "id": "REQ-CONV-2",
2026-06-21T08:16:00.1472036Z       "title": "Event-driven advertisement: endpoint online/offline transitions (ready-listener start/stop, rest-state transition, perch death) trigger an immediate advertise_local + peer push as a WAKE of the existing pump loop (no second advertisement path — epoch lease + visibility gates ride unchanged); the cadence stays the steady-state floor (M8 decision 15)",
2026-06-21T08:16:00.1472155Z       "requiredStages": [
2026-06-21T08:16:00.1472261Z         "impl",
2026-06-21T08:16:00.1472374Z         "unit"
2026-06-21T08:16:00.1472479Z       ],
2026-06-21T08:16:00.1472590Z       "stages": {
2026-06-21T08:16:00.1472689Z         "doc": {
2026-06-21T08:16:00.1472817Z           "complete": false,
2026-06-21T08:16:00.1472933Z           "evidence": []
2026-06-21T08:16:00.1473042Z         },
2026-06-21T08:16:00.1473162Z         "impl": {
2026-06-21T08:16:00.1473277Z           "complete": true,
2026-06-21T08:16:00.1473384Z           "evidence": [
2026-06-21T08:16:00.1473489Z             {
2026-06-21T08:16:00.1473652Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.1473760Z               "line": 409
2026-06-21T08:16:00.1473866Z             },
2026-06-21T08:16:00.1473981Z             {
2026-06-21T08:16:00.1474132Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-21T08:16:00.1474253Z               "line": 119
2026-06-21T08:16:00.1474362Z             },
2026-06-21T08:16:00.1474462Z             {
2026-06-21T08:16:00.1474633Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.1474752Z               "line": 841
2026-06-21T08:16:00.1474863Z             },
2026-06-21T08:16:00.1474972Z             {
2026-06-21T08:16:00.1475135Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.1475253Z               "line": 852
2026-06-21T08:16:00.1475367Z             },
2026-06-21T08:16:00.1475479Z             {
2026-06-21T08:16:00.1475634Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.1475758Z               "line": 334
2026-06-21T08:16:00.1475862Z             },
2026-06-21T08:16:00.1475979Z             {
2026-06-21T08:16:00.1476118Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1476237Z               "line": 3074
2026-06-21T08:16:00.1476351Z             },
2026-06-21T08:16:00.1476457Z             {
2026-06-21T08:16:00.1476594Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1476709Z               "line": 3090
2026-06-21T08:16:00.1476819Z             },
2026-06-21T08:16:00.1476928Z             {
2026-06-21T08:16:00.1477058Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1477186Z               "line": 3170
2026-06-21T08:16:00.1477392Z             }
2026-06-21T08:16:00.1477505Z           ]
2026-06-21T08:16:00.1477692Z         },
2026-06-21T08:16:00.1477810Z         "int": {
2026-06-21T08:16:00.1477934Z           "complete": false,
2026-06-21T08:16:00.1478041Z           "evidence": []
2026-06-21T08:16:00.1478148Z         },
2026-06-21T08:16:00.1478254Z         "unit": {
2026-06-21T08:16:00.1478370Z           "complete": true,
2026-06-21T08:16:00.1478477Z           "evidence": [
2026-06-21T08:16:00.1478591Z             {
2026-06-21T08:16:00.1478748Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.1478856Z               "line": 889
2026-06-21T08:16:00.1479014Z             },
2026-06-21T08:16:00.1479114Z             {
2026-06-21T08:16:00.1479266Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.1479376Z               "line": 1014
2026-06-21T08:16:00.1479480Z             },
2026-06-21T08:16:00.1479586Z             {
2026-06-21T08:16:00.1479744Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-21T08:16:00.1479862Z               "line": 215
2026-06-21T08:16:00.1479978Z             }
2026-06-21T08:16:00.1480091Z           ]
2026-06-21T08:16:00.1480191Z         }
2026-06-21T08:16:00.1480297Z       }
2026-06-21T08:16:00.1480405Z     },
2026-06-21T08:16:00.1480510Z     {
2026-06-21T08:16:00.1480635Z       "id": "REQ-DAEMON-1",
2026-06-21T08:16:00.1480835Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-21T08:16:00.1480955Z       "requiredStages": [
2026-06-21T08:16:00.1481063Z         "impl",
2026-06-21T08:16:00.1481172Z         "unit",
2026-06-21T08:16:00.1481277Z         "int"
2026-06-21T08:16:00.1481375Z       ],
2026-06-21T08:16:00.1481489Z       "stages": {
2026-06-21T08:16:00.1481595Z         "doc": {
2026-06-21T08:16:00.1481719Z           "complete": false,
2026-06-21T08:16:00.1481833Z           "evidence": []
2026-06-21T08:16:00.1481943Z         },
2026-06-21T08:16:00.1482047Z         "impl": {
2026-06-21T08:16:00.1482177Z           "complete": true,
2026-06-21T08:16:00.1482286Z           "evidence": [
2026-06-21T08:16:00.1482391Z             {
2026-06-21T08:16:00.1482553Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1482658Z               "line": 229
2026-06-21T08:16:00.1482763Z             },
2026-06-21T08:16:00.1482864Z             {
2026-06-21T08:16:00.1483006Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-21T08:16:00.1483131Z               "line": 12
2026-06-21T08:16:00.1483244Z             },
2026-06-21T08:16:00.1483359Z             {
2026-06-21T08:16:00.1483517Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.1483630Z               "line": 16
2026-06-21T08:16:00.1483746Z             },
2026-06-21T08:16:00.1483846Z             {
2026-06-21T08:16:00.1483996Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.1484111Z               "line": 309
2026-06-21T08:16:00.1484231Z             },
2026-06-21T08:16:00.1484335Z             {
2026-06-21T08:16:00.1484489Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.1484607Z               "line": 24
2026-06-21T08:16:00.1484712Z             },
2026-06-21T08:16:00.1484827Z             {
2026-06-21T08:16:00.1484983Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.1485094Z               "line": 262
2026-06-21T08:16:00.1545910Z             },
2026-06-21T08:16:00.1546314Z             {
2026-06-21T08:16:00.1546525Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.1546672Z               "line": 279
2026-06-21T08:16:00.1546782Z             },
2026-06-21T08:16:00.1546901Z             {
2026-06-21T08:16:00.1547073Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.1547193Z               "line": 356
2026-06-21T08:16:00.1547310Z             },
2026-06-21T08:16:00.1547414Z             {
2026-06-21T08:16:00.1547569Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.1548155Z               "line": 670
2026-06-21T08:16:00.1548320Z             },
2026-06-21T08:16:00.1548593Z             {
2026-06-21T08:16:00.1548751Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-21T08:16:00.1548864Z               "line": 15
2026-06-21T08:16:00.1549042Z             },
2026-06-21T08:16:00.1549160Z             {
2026-06-21T08:16:00.1549318Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.1549433Z               "line": 241
2026-06-21T08:16:00.1549555Z             },
2026-06-21T08:16:00.1549669Z             {
2026-06-21T08:16:00.1549816Z               "path": "crates/spt/src/api/live.rs",
2026-06-21T08:16:00.1549929Z               "line": 13
2026-06-21T08:16:00.1550039Z             },
2026-06-21T08:16:00.1550149Z             {
2026-06-21T08:16:00.1550291Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.1550411Z               "line": 382
2026-06-21T08:16:00.1550520Z             },
2026-06-21T08:16:00.1550630Z             {
2026-06-21T08:16:00.1550778Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.1550906Z               "line": 494
2026-06-21T08:16:00.1551012Z             }
2026-06-21T08:16:00.1551126Z           ]
2026-06-21T08:16:00.1551235Z         },
2026-06-21T08:16:00.1551341Z         "int": {
2026-06-21T08:16:00.1551474Z           "complete": true,
2026-06-21T08:16:00.1551579Z           "evidence": [
2026-06-21T08:16:00.1551685Z             {
2026-06-21T08:16:00.1551889Z               "path": "crates/spt-daemon/tests/daemon_lifecycle_real_brain.rs",
2026-06-21T08:16:00.1552000Z               "line": 2
2026-06-21T08:16:00.1552113Z             },
2026-06-21T08:16:00.1552219Z             {
2026-06-21T08:16:00.1552422Z               "path": "crates/spt-daemon/tests/daemon_lifecycle_real_brain.rs",
2026-06-21T08:16:00.1552531Z               "line": 16
2026-06-21T08:16:00.1552646Z             },
2026-06-21T08:16:00.1552758Z             {
2026-06-21T08:16:00.1552935Z               "path": "crates/spt/tests/live_bind_firsthost_e2e.rs",
2026-06-21T08:16:00.1553049Z               "line": 12
2026-06-21T08:16:00.1553153Z             },
2026-06-21T08:16:00.1553259Z             {
2026-06-21T08:16:00.1553420Z               "path": "crates/spt/tests/live_firsthost_e2e.rs",
2026-06-21T08:16:00.1553541Z               "line": 12
2026-06-21T08:16:00.1553655Z             },
2026-06-21T08:16:00.1553764Z             {
2026-06-21T08:16:00.1553931Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-21T08:16:00.1554045Z               "line": 44
2026-06-21T08:16:00.1554156Z             }
2026-06-21T08:16:00.1554260Z           ]
2026-06-21T08:16:00.1554365Z         },
2026-06-21T08:16:00.1554480Z         "unit": {
2026-06-21T08:16:00.1554603Z           "complete": true,
2026-06-21T08:16:00.1554713Z           "evidence": [
2026-06-21T08:16:00.1554814Z             {
2026-06-21T08:16:00.1554965Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-21T08:16:00.1555083Z               "line": 285
2026-06-21T08:16:00.1555198Z             },
2026-06-21T08:16:00.1555315Z             {
2026-06-21T08:16:00.1555453Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-21T08:16:00.1555574Z               "line": 293
2026-06-21T08:16:00.1555682Z             },
2026-06-21T08:16:00.1555798Z             {
2026-06-21T08:16:00.1555940Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-21T08:16:00.1556049Z               "line": 309
2026-06-21T08:16:00.1556164Z             },
2026-06-21T08:16:00.1556274Z             {
2026-06-21T08:16:00.1556427Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-21T08:16:00.1556541Z               "line": 317
2026-06-21T08:16:00.1556654Z             },
2026-06-21T08:16:00.1556756Z             {
2026-06-21T08:16:00.1556927Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.1557042Z               "line": 659
2026-06-21T08:16:00.1557146Z             },
2026-06-21T08:16:00.1557381Z             {
2026-06-21T08:16:00.1557527Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.1557734Z               "line": 729
2026-06-21T08:16:00.1557837Z             },
2026-06-21T08:16:00.1557941Z             {
2026-06-21T08:16:00.1558104Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.1558218Z               "line": 1211
2026-06-21T08:16:00.1558328Z             },
2026-06-21T08:16:00.1558433Z             {
2026-06-21T08:16:00.1558589Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.1558705Z               "line": 1248
2026-06-21T08:16:00.1558805Z             },
2026-06-21T08:16:00.1558919Z             {
2026-06-21T08:16:00.1562527Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.1562683Z               "line": 1271
2026-06-21T08:16:00.1562798Z             },
2026-06-21T08:16:00.1562912Z             {
2026-06-21T08:16:00.1563072Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.1563201Z               "line": 1300
2026-06-21T08:16:00.1563313Z             },
2026-06-21T08:16:00.1563428Z             {
2026-06-21T08:16:00.1563586Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.1563704Z               "line": 1348
2026-06-21T08:16:00.1563810Z             },
2026-06-21T08:16:00.1563924Z             {
2026-06-21T08:16:00.1564067Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.1564186Z               "line": 1391
2026-06-21T08:16:00.1564295Z             },
2026-06-21T08:16:00.1564406Z             {
2026-06-21T08:16:00.1564543Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-21T08:16:00.1564658Z               "line": 106
2026-06-21T08:16:00.1564774Z             },
2026-06-21T08:16:00.1564882Z             {
2026-06-21T08:16:00.1565026Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-21T08:16:00.1565135Z               "line": 132
2026-06-21T08:16:00.1565249Z             },
2026-06-21T08:16:00.1565351Z             {
2026-06-21T08:16:00.1565502Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.1565624Z               "line": 530
2026-06-21T08:16:00.1565716Z             }
2026-06-21T08:16:00.1565828Z           ]
2026-06-21T08:16:00.1565932Z         }
2026-06-21T08:16:00.1566043Z       }
2026-06-21T08:16:00.1566143Z     },
2026-06-21T08:16:00.1566256Z     {
2026-06-21T08:16:00.1566381Z       "id": "REQ-DAEMON-2",
2026-06-21T08:16:00.1566562Z       "title": "Broker/brain split for seamless self-update",
2026-06-21T08:16:00.1566692Z       "requiredStages": [
2026-06-21T08:16:00.1566805Z         "impl",
2026-06-21T08:16:00.1566919Z         "unit",
2026-06-21T08:16:00.1567025Z         "int"
2026-06-21T08:16:00.1567134Z       ],
2026-06-21T08:16:00.1567253Z       "stages": {
2026-06-21T08:16:00.1567363Z         "doc": {
2026-06-21T08:16:00.1567487Z           "complete": true,
2026-06-21T08:16:00.1567592Z           "evidence": [
2026-06-21T08:16:00.1567711Z             {
2026-06-21T08:16:00.1567912Z               "path": "docs/TWO-HOST-RUNBOOK.md",
2026-06-21T08:16:00.1568021Z               "line": 250
2026-06-21T08:16:00.1568136Z             }
2026-06-21T08:16:00.1568232Z           ]
2026-06-21T08:16:00.1568346Z         },
2026-06-21T08:16:00.1568449Z         "impl": {
2026-06-21T08:16:00.1568563Z           "complete": true,
2026-06-21T08:16:00.1568679Z           "evidence": [
2026-06-21T08:16:00.1568797Z             {
2026-06-21T08:16:00.1569050Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.1569159Z               "line": 23
2026-06-21T08:16:00.1569280Z             },
2026-06-21T08:16:00.1569379Z             {
2026-06-21T08:16:00.1569542Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.1569647Z               "line": 844
2026-06-21T08:16:00.1569760Z             },
2026-06-21T08:16:00.1569867Z             {
2026-06-21T08:16:00.1570003Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.1570356Z               "line": 869
2026-06-21T08:16:00.1570457Z             },
2026-06-21T08:16:00.1570567Z             {
2026-06-21T08:16:00.1570846Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.1570973Z               "line": 1105
2026-06-21T08:16:00.1571087Z             },
2026-06-21T08:16:00.1571188Z             {
2026-06-21T08:16:00.1571339Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.1571450Z               "line": 32
2026-06-21T08:16:00.1571569Z             },
2026-06-21T08:16:00.1571664Z             {
2026-06-21T08:16:00.1571827Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.1571946Z               "line": 1150
2026-06-21T08:16:00.1572046Z             },
2026-06-21T08:16:00.1572152Z             {
2026-06-21T08:16:00.1572289Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.1572409Z               "line": 1947
2026-06-21T08:16:00.1572509Z             },
2026-06-21T08:16:00.1572627Z             {
2026-06-21T08:16:00.1572776Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.1572894Z               "line": 2234
2026-06-21T08:16:00.1572990Z             },
2026-06-21T08:16:00.1573096Z             {
2026-06-21T08:16:00.1573252Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-21T08:16:00.1573373Z               "line": 11
2026-06-21T08:16:00.1573482Z             },
2026-06-21T08:16:00.1573590Z             {
2026-06-21T08:16:00.1573733Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.1573855Z               "line": 153
2026-06-21T08:16:00.1573940Z             },
2026-06-21T08:16:00.1574050Z             {
2026-06-21T08:16:00.1574207Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.1574317Z               "line": 343
2026-06-21T08:16:00.1574427Z             },
2026-06-21T08:16:00.1574531Z             {
2026-06-21T08:16:00.1574675Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T08:16:00.1574790Z               "line": 13
2026-06-21T08:16:00.1574908Z             },
2026-06-21T08:16:00.1575019Z             {
2026-06-21T08:16:00.1575208Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.1575324Z               "line": 27
2026-06-21T08:16:00.1575432Z             },
2026-06-21T08:16:00.1575543Z             {
2026-06-21T08:16:00.1575682Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.1575790Z               "line": 173
2026-06-21T08:16:00.1575896Z             },
2026-06-21T08:16:00.1576001Z             {
2026-06-21T08:16:00.1576152Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.1576266Z               "line": 682
2026-06-21T08:16:00.1576379Z             },
2026-06-21T08:16:00.1576483Z             {
2026-06-21T08:16:00.1576636Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.1576755Z               "line": 903
2026-06-21T08:16:00.1576855Z             },
2026-06-21T08:16:00.1576970Z             {
2026-06-21T08:16:00.1577112Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.1577233Z               "line": 1050
2026-06-21T08:16:00.1577337Z             },
2026-06-21T08:16:00.1577446Z             {
2026-06-21T08:16:00.1577595Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.1577699Z               "line": 1139
2026-06-21T08:16:00.1577804Z             },
2026-06-21T08:16:00.1577905Z             {
2026-06-21T08:16:00.1578056Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.1578162Z               "line": 1261
2026-06-21T08:16:00.1578271Z             },
2026-06-21T08:16:00.1578381Z             {
2026-06-21T08:16:00.1578526Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-21T08:16:00.1578638Z               "line": 10
2026-06-21T08:16:00.1578739Z             }
2026-06-21T08:16:00.1578850Z           ]
2026-06-21T08:16:00.1579042Z         },
2026-06-21T08:16:00.1579148Z         "int": {
2026-06-21T08:16:00.1579410Z           "complete": true,
2026-06-21T08:16:00.1579520Z           "evidence": [
2026-06-21T08:16:00.1579729Z             {
2026-06-21T08:16:00.1579873Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-21T08:16:00.1579996Z               "line": 17
2026-06-21T08:16:00.1580102Z             },
2026-06-21T08:16:00.1580221Z             {
2026-06-21T08:16:00.1580368Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-21T08:16:00.1580483Z               "line": 90
2026-06-21T08:16:00.1580597Z             },
2026-06-21T08:16:00.1580707Z             {
2026-06-21T08:16:00.1580873Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-21T08:16:00.1580988Z               "line": 110
2026-06-21T08:16:00.1581094Z             },
2026-06-21T08:16:00.1581193Z             {
2026-06-21T08:16:00.1581340Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-21T08:16:00.1581449Z               "line": 186
2026-06-21T08:16:00.1581562Z             },
2026-06-21T08:16:00.1581666Z             {
2026-06-21T08:16:00.1581816Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-21T08:16:00.1581938Z               "line": 309
2026-06-21T08:16:00.1582044Z             },
2026-06-21T08:16:00.1582149Z             {
2026-06-21T08:16:00.1582296Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-21T08:16:00.1582407Z               "line": 128
2026-06-21T08:16:00.1582520Z             },
2026-06-21T08:16:00.1582630Z             {
2026-06-21T08:16:00.1582778Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-21T08:16:00.1582891Z               "line": 59
2026-06-21T08:16:00.1582998Z             }
2026-06-21T08:16:00.1583107Z           ]
2026-06-21T08:16:00.1583211Z         },
2026-06-21T08:16:00.1583322Z         "unit": {
2026-06-21T08:16:00.1583445Z           "complete": true,
2026-06-21T08:16:00.1583550Z           "evidence": [
2026-06-21T08:16:00.1583656Z             {
2026-06-21T08:16:00.1583813Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-21T08:16:00.1583928Z               "line": 62
2026-06-21T08:16:00.1584028Z             },
2026-06-21T08:16:00.1584140Z             {
2026-06-21T08:16:00.1584298Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-21T08:16:00.1584410Z               "line": 76
2026-06-21T08:16:00.1584519Z             },
2026-06-21T08:16:00.1584625Z             {
2026-06-21T08:16:00.1584776Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-21T08:16:00.1584887Z               "line": 88
2026-06-21T08:16:00.1584996Z             },
2026-06-21T08:16:00.1585101Z             {
2026-06-21T08:16:00.1585245Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-21T08:16:00.1585350Z               "line": 347
2026-06-21T08:16:00.1585453Z             },
2026-06-21T08:16:00.1585550Z             {
2026-06-21T08:16:00.1585698Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T08:16:00.1585821Z               "line": 873
2026-06-21T08:16:00.1585937Z             },
2026-06-21T08:16:00.1586041Z             {
2026-06-21T08:16:00.1586184Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T08:16:00.1586298Z               "line": 881
2026-06-21T08:16:00.1586412Z             },
2026-06-21T08:16:00.1586514Z             {
2026-06-21T08:16:00.1586660Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T08:16:00.1586773Z               "line": 898
2026-06-21T08:16:00.1586879Z             },
2026-06-21T08:16:00.1586986Z             {
2026-06-21T08:16:00.1587120Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T08:16:00.1587264Z               "line": 974
2026-06-21T08:16:00.1587415Z             },
2026-06-21T08:16:00.1587620Z             {
2026-06-21T08:16:00.1587854Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.1588025Z               "line": 1370
2026-06-21T08:16:00.1588183Z             },
2026-06-21T08:16:00.1588335Z             {
2026-06-21T08:16:00.1588503Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.1588718Z               "line": 1382
2026-06-21T08:16:00.1588874Z             },
2026-06-21T08:16:00.1589052Z             {
2026-06-21T08:16:00.1589203Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-21T08:16:00.1589313Z               "line": 110
2026-06-21T08:16:00.1589419Z             },
2026-06-21T08:16:00.1589536Z             {
2026-06-21T08:16:00.1589693Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-21T08:16:00.1589804Z               "line": 145
2026-06-21T08:16:00.1589922Z             }
2026-06-21T08:16:00.1590027Z           ]
2026-06-21T08:16:00.1590123Z         }
2026-06-21T08:16:00.1590227Z       }
2026-06-21T08:16:00.1590338Z     },
2026-06-21T08:16:00.1590442Z     {
2026-06-21T08:16:00.1590561Z       "id": "REQ-DAEMON-3",
2026-06-21T08:16:00.1590747Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-21T08:16:00.1590861Z       "requiredStages": [
2026-06-21T08:16:00.1590987Z         "impl",
2026-06-21T08:16:00.1591114Z         "unit",
2026-06-21T08:16:00.1591228Z         "int"
2026-06-21T08:16:00.1591335Z       ],
2026-06-21T08:16:00.1591448Z       "stages": {
2026-06-21T08:16:00.1591563Z         "doc": {
2026-06-21T08:16:00.1591682Z           "complete": false,
2026-06-21T08:16:00.1591805Z           "evidence": []
2026-06-21T08:16:00.1591900Z         },
2026-06-21T08:16:00.1592009Z         "impl": {
2026-06-21T08:16:00.1592136Z           "complete": true,
2026-06-21T08:16:00.1592241Z           "evidence": [
2026-06-21T08:16:00.1592380Z             {
2026-06-21T08:16:00.1592570Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.1592685Z               "line": 14
2026-06-21T08:16:00.1592794Z             },
2026-06-21T08:16:00.1592900Z             {
2026-06-21T08:16:00.1593066Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-21T08:16:00.1593195Z               "line": 11
2026-06-21T08:16:00.1593295Z             },
2026-06-21T08:16:00.1593419Z             {
2026-06-21T08:16:00.1593554Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T08:16:00.1593676Z               "line": 305
2026-06-21T08:16:00.1593776Z             },
2026-06-21T08:16:00.1593882Z             {
2026-06-21T08:16:00.1594024Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1594139Z               "line": 1956
2026-06-21T08:16:00.1594249Z             },
2026-06-21T08:16:00.1594358Z             {
2026-06-21T08:16:00.1594493Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1594602Z               "line": 4235
2026-06-21T08:16:00.1594710Z             },
2026-06-21T08:16:00.1594877Z             {
2026-06-21T08:16:00.1595041Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1595337Z               "line": 4256
2026-06-21T08:16:00.1595490Z             }
2026-06-21T08:16:00.1595652Z           ]
2026-06-21T08:16:00.1595786Z         },
2026-06-21T08:16:00.1595952Z         "int": {
2026-06-21T08:16:00.1596182Z           "complete": true,
2026-06-21T08:16:00.1596314Z           "evidence": [
2026-06-21T08:16:00.1596477Z             {
2026-06-21T08:16:00.1596667Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-21T08:16:00.1596858Z               "line": 49
2026-06-21T08:16:00.1597050Z             },
2026-06-21T08:16:00.1597215Z             {
2026-06-21T08:16:00.1597424Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-21T08:16:00.1597565Z               "line": 487
2026-06-21T08:16:00.1597747Z             }
2026-06-21T08:16:00.1597913Z           ]
2026-06-21T08:16:00.1598067Z         },
2026-06-21T08:16:00.1598199Z         "unit": {
2026-06-21T08:16:00.1598367Z           "complete": true,
2026-06-21T08:16:00.1598556Z           "evidence": [
2026-06-21T08:16:00.1598720Z             {
2026-06-21T08:16:00.1598924Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.1599149Z               "line": 1553
2026-06-21T08:16:00.1599321Z             },
2026-06-21T08:16:00.1599679Z             {
2026-06-21T08:16:00.1599840Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1600120Z               "line": 10715
2026-06-21T08:16:00.1600258Z             }
2026-06-21T08:16:00.1600420Z           ]
2026-06-21T08:16:00.1600587Z         }
2026-06-21T08:16:00.1600754Z       }
2026-06-21T08:16:00.1600908Z     },
2026-06-21T08:16:00.1601055Z     {
2026-06-21T08:16:00.1601275Z       "id": "REQ-DAEMON-4",
2026-06-21T08:16:00.1601450Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-21T08:16:00.1601641Z       "requiredStages": [
2026-06-21T08:16:00.1601760Z         "impl",
2026-06-21T08:16:00.1601970Z         "unit",
2026-06-21T08:16:00.1602127Z         "int"
2026-06-21T08:16:00.1602276Z       ],
2026-06-21T08:16:00.1602470Z       "stages": {
2026-06-21T08:16:00.1602607Z         "doc": {
2026-06-21T08:16:00.1602801Z           "complete": false,
2026-06-21T08:16:00.1602958Z           "evidence": []
2026-06-21T08:16:00.1603125Z         },
2026-06-21T08:16:00.1603330Z         "impl": {
2026-06-21T08:16:00.1603503Z           "complete": true,
2026-06-21T08:16:00.1603706Z           "evidence": [
2026-06-21T08:16:00.1603860Z             {
2026-06-21T08:16:00.1604099Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.1604284Z               "line": 464
2026-06-21T08:16:00.1604399Z             },
2026-06-21T08:16:00.1604609Z             {
2026-06-21T08:16:00.1604795Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.1604952Z               "line": 529
2026-06-21T08:16:00.1605096Z             },
2026-06-21T08:16:00.1605246Z             {
2026-06-21T08:16:00.1605497Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.1605639Z               "line": 551
2026-06-21T08:16:00.1605812Z             }
2026-06-21T08:16:00.1605949Z           ]
2026-06-21T08:16:00.1606126Z         },
2026-06-21T08:16:00.1606312Z         "int": {
2026-06-21T08:16:00.1606470Z           "complete": true,
2026-06-21T08:16:00.1606742Z           "evidence": [
2026-06-21T08:16:00.1606942Z             {
2026-06-21T08:16:00.1607305Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-21T08:16:00.1607547Z               "line": 42
2026-06-21T08:16:00.1607785Z             }
2026-06-21T08:16:00.1608097Z           ]
2026-06-21T08:16:00.1608292Z         },
2026-06-21T08:16:00.1608579Z         "unit": {
2026-06-21T08:16:00.1608797Z           "complete": true,
2026-06-21T08:16:00.1609112Z           "evidence": [
2026-06-21T08:16:00.1609327Z             {
2026-06-21T08:16:00.1609633Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-21T08:16:00.1610332Z               "line": 428
2026-06-21T08:16:00.1610568Z             },
2026-06-21T08:16:00.1610785Z             {
2026-06-21T08:16:00.1611042Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.1611286Z               "line": 957
2026-06-21T08:16:00.1611529Z             },
2026-06-21T08:16:00.1611744Z             {
2026-06-21T08:16:00.1612000Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.1612201Z               "line": 1027
2026-06-21T08:16:00.1612756Z             },
2026-06-21T08:16:00.1613025Z             {
2026-06-21T08:16:00.1613318Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.1613496Z               "line": 1057
2026-06-21T08:16:00.1613695Z             },
2026-06-21T08:16:00.1613876Z             {
2026-06-21T08:16:00.1614172Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.1614369Z               "line": 1090
2026-06-21T08:16:00.1614563Z             }
2026-06-21T08:16:00.1614777Z           ]
2026-06-21T08:16:00.1614935Z         }
2026-06-21T08:16:00.1615154Z       }
2026-06-21T08:16:00.1615337Z     },
2026-06-21T08:16:00.1615531Z     {
2026-06-21T08:16:00.1615712Z       "id": "REQ-DAEMON-5",
2026-06-21T08:16:00.1617903Z       "title": "Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status (decision 23 render legs in REQ-CLI-2/REQ-SUBNET-8); the daemon supervises the pump task — a panic is caught, logged loudly, and the pump restarts with capped backoff (≤5 min), so a 5.9-class death self-heals visibly instead of silently halving the daemon (M8 decision 23; field motivation: hfenduleam 2026-06-07 half-death)",
2026-06-21T08:16:00.1618610Z       "requiredStages": [
2026-06-21T08:16:00.1618795Z         "impl",
2026-06-21T08:16:00.1619100Z         "unit"
2026-06-21T08:16:00.1619306Z       ],
2026-06-21T08:16:00.1619473Z       "stages": {
2026-06-21T08:16:00.1619705Z         "doc": {
2026-06-21T08:16:00.1619901Z           "complete": false,
2026-06-21T08:16:00.1620141Z           "evidence": []
2026-06-21T08:16:00.1620297Z         },
2026-06-21T08:16:00.1620479Z         "impl": {
2026-06-21T08:16:00.1620684Z           "complete": true,
2026-06-21T08:16:00.1620855Z           "evidence": [
2026-06-21T08:16:00.1621013Z             {
2026-06-21T08:16:00.1621203Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.1621393Z               "line": 476
2026-06-21T08:16:00.1621527Z             },
2026-06-21T08:16:00.1621780Z             {
2026-06-21T08:16:00.1621999Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.1622142Z               "line": 769
2026-06-21T08:16:00.1622451Z             },
2026-06-21T08:16:00.1622565Z             {
2026-06-21T08:16:00.1622833Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.1623006Z               "line": 782
2026-06-21T08:16:00.1623137Z             },
2026-06-21T08:16:00.1623306Z             {
2026-06-21T08:16:00.1623457Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.1623695Z               "line": 800
2026-06-21T08:16:00.1623965Z             },
2026-06-21T08:16:00.1624212Z             {
2026-06-21T08:16:00.1624450Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.1624585Z               "line": 841
2026-06-21T08:16:00.1624861Z             }
2026-06-21T08:16:00.1624999Z           ]
2026-06-21T08:16:00.1625180Z         },
2026-06-21T08:16:00.1625318Z         "int": {
2026-06-21T08:16:00.1625490Z           "complete": false,
2026-06-21T08:16:00.1625719Z           "evidence": []
2026-06-21T08:16:00.1625849Z         },
2026-06-21T08:16:00.1626034Z         "unit": {
2026-06-21T08:16:00.1626178Z           "complete": true,
2026-06-21T08:16:00.1626334Z           "evidence": [
2026-06-21T08:16:00.1626553Z             {
2026-06-21T08:16:00.1626745Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.1626937Z               "line": 1189
2026-06-21T08:16:00.1627069Z             },
2026-06-21T08:16:00.1627214Z             {
2026-06-21T08:16:00.1627433Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.1627628Z               "line": 1213
2026-06-21T08:16:00.1627796Z             },
2026-06-21T08:16:00.1627928Z             {
2026-06-21T08:16:00.1628120Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.1628300Z               "line": 1239
2026-06-21T08:16:00.1628496Z             }
2026-06-21T08:16:00.1628634Z           ]
2026-06-21T08:16:00.1628787Z         }
2026-06-21T08:16:00.1629028Z       }
2026-06-21T08:16:00.1629198Z     },
2026-06-21T08:16:00.1629389Z     {
2026-06-21T08:16:00.1629541Z       "id": "REQ-DAEMON-6",
2026-06-21T08:16:00.1631721Z       "title": "Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.",
2026-06-21T08:16:00.1632068Z       "requiredStages": [
2026-06-21T08:16:00.1632268Z         "impl",
2026-06-21T08:16:00.1632564Z         "unit"
2026-06-21T08:16:00.1632722Z       ],
2026-06-21T08:16:00.1632859Z       "stages": {
2026-06-21T08:16:00.1633030Z         "doc": {
2026-06-21T08:16:00.1633227Z           "complete": false,
2026-06-21T08:16:00.1633422Z           "evidence": []
2026-06-21T08:16:00.1633556Z         },
2026-06-21T08:16:00.1633717Z         "impl": {
2026-06-21T08:16:00.1633895Z           "complete": true,
2026-06-21T08:16:00.1634074Z           "evidence": [
2026-06-21T08:16:00.1634315Z             {
2026-06-21T08:16:00.1634505Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.1634686Z               "line": 495
2026-06-21T08:16:00.1634820Z             },
2026-06-21T08:16:00.1634996Z             {
2026-06-21T08:16:00.1635221Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.1635363Z               "line": 526
2026-06-21T08:16:00.1635554Z             },
2026-06-21T08:16:00.1635687Z             {
2026-06-21T08:16:00.1635927Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-21T08:16:00.1636123Z               "line": 55
2026-06-21T08:16:00.1636255Z             },
2026-06-21T08:16:00.1636433Z             {
2026-06-21T08:16:00.1636608Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-21T08:16:00.1636805Z               "line": 70
2026-06-21T08:16:00.1636951Z             },
2026-06-21T08:16:00.1637118Z             {
2026-06-21T08:16:00.1637324Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1637469Z               "line": 2020
2026-06-21T08:16:00.1637653Z             },
2026-06-21T08:16:00.1637935Z             {
2026-06-21T08:16:00.1638146Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1638293Z               "line": 2046
2026-06-21T08:16:00.1638460Z             }
2026-06-21T08:16:00.1638646Z           ]
2026-06-21T08:16:00.1638793Z         },
2026-06-21T08:16:00.1639070Z         "int": {
2026-06-21T08:16:00.1639281Z           "complete": false,
2026-06-21T08:16:00.1639461Z           "evidence": []
2026-06-21T08:16:00.1639665Z         },
2026-06-21T08:16:00.1639816Z         "unit": {
2026-06-21T08:16:00.1640012Z           "complete": true,
2026-06-21T08:16:00.1640158Z           "evidence": [
2026-06-21T08:16:00.1640321Z             {
2026-06-21T08:16:00.1640492Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-21T08:16:00.1640717Z               "line": 288
2026-06-21T08:16:00.1640899Z             },
2026-06-21T08:16:00.1641036Z             {
2026-06-21T08:16:00.1641242Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-21T08:16:00.1641370Z               "line": 299
2026-06-21T08:16:00.1641599Z             },
2026-06-21T08:16:00.1641732Z             {
2026-06-21T08:16:00.1641947Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-21T08:16:00.1642119Z               "line": 325
2026-06-21T08:16:00.1642239Z             },
2026-06-21T08:16:00.1642484Z             {
2026-06-21T08:16:00.1642666Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-21T08:16:00.1642852Z               "line": 351
2026-06-21T08:16:00.1643014Z             }
2026-06-21T08:16:00.1643134Z           ]
2026-06-21T08:16:00.1643361Z         }
2026-06-21T08:16:00.1643491Z       }
2026-06-21T08:16:00.1643653Z     },
2026-06-21T08:16:00.1643778Z     {
2026-06-21T08:16:00.1643944Z       "id": "REQ-DAEMON-7",
2026-06-21T08:16:00.1645519Z       "title": "`daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).",
2026-06-21T08:16:00.1645671Z       "requiredStages": [
2026-06-21T08:16:00.1645971Z         "impl",
2026-06-21T08:16:00.1646106Z         "unit"
2026-06-21T08:16:00.1646635Z       ],
2026-06-21T08:16:00.1646858Z       "stages": {
2026-06-21T08:16:00.1646998Z         "doc": {
2026-06-21T08:16:00.1647173Z           "complete": false,
2026-06-21T08:16:00.1647332Z           "evidence": []
2026-06-21T08:16:00.1647487Z         },
2026-06-21T08:16:00.1647706Z         "impl": {
2026-06-21T08:16:00.1647842Z           "complete": true,
2026-06-21T08:16:00.1648033Z           "evidence": [
2026-06-21T08:16:00.1648171Z             {
2026-06-21T08:16:00.1648357Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.1648528Z               "line": 545
2026-06-21T08:16:00.1648706Z             },
2026-06-21T08:16:00.1648877Z             {
2026-06-21T08:16:00.1649134Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T08:16:00.1649349Z               "line": 610
2026-06-21T08:16:00.1649584Z             },
2026-06-21T08:16:00.1649841Z             {
2026-06-21T08:16:00.1650096Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-21T08:16:00.1650337Z               "line": 89
2026-06-21T08:16:00.1650543Z             },
2026-06-21T08:16:00.1650771Z             {
2026-06-21T08:16:00.1651052Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1651253Z               "line": 1957
2026-06-21T08:16:00.1651478Z             }
2026-06-21T08:16:00.1651682Z           ]
2026-06-21T08:16:00.1651911Z         },
2026-06-21T08:16:00.1652187Z         "int": {
2026-06-21T08:16:00.1652398Z           "complete": false,
2026-06-21T08:16:00.1652631Z           "evidence": []
2026-06-21T08:16:00.1652808Z         },
2026-06-21T08:16:00.1653079Z         "unit": {
2026-06-21T08:16:00.1653354Z           "complete": true,
2026-06-21T08:16:00.1653545Z           "evidence": [
2026-06-21T08:16:00.1653761Z             {
2026-06-21T08:16:00.1653998Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-21T08:16:00.1654265Z               "line": 314
2026-06-21T08:16:00.1654494Z             },
2026-06-21T08:16:00.1654714Z             {
2026-06-21T08:16:00.1654977Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1655175Z               "line": 8102
2026-06-21T08:16:00.1655436Z             }
2026-06-21T08:16:00.1655645Z           ]
2026-06-21T08:16:00.1655868Z         }
2026-06-21T08:16:00.1656098Z       }
2026-06-21T08:16:00.1656266Z     },
2026-06-21T08:16:00.1665011Z     {
2026-06-21T08:16:00.1665223Z       "id": "REQ-DAEMON-8",
2026-06-21T08:16:00.1666563Z       "title": "Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.",
2026-06-21T08:16:00.1666733Z       "requiredStages": [
2026-06-21T08:16:00.1666873Z         "impl",
2026-06-21T08:16:00.1666991Z         "unit"
2026-06-21T08:16:00.1667136Z       ],
2026-06-21T08:16:00.1667264Z       "stages": {
2026-06-21T08:16:00.1667397Z         "doc": {
2026-06-21T08:16:00.1667545Z           "complete": false,
2026-06-21T08:16:00.1667683Z           "evidence": []
2026-06-21T08:16:00.1667808Z         },
2026-06-21T08:16:00.1667935Z         "impl": {
2026-06-21T08:16:00.1668090Z           "complete": true,
2026-06-21T08:16:00.1668222Z           "evidence": [
2026-06-21T08:16:00.1668351Z             {
2026-06-21T08:16:00.1668537Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.1668678Z               "line": 445
2026-06-21T08:16:00.1668802Z             },
2026-06-21T08:16:00.1668929Z             {
2026-06-21T08:16:00.1669220Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-21T08:16:00.1669353Z               "line": 56
2026-06-21T08:16:00.1669478Z             }
2026-06-21T08:16:00.1669591Z           ]
2026-06-21T08:16:00.1669716Z         },
2026-06-21T08:16:00.1669850Z         "int": {
2026-06-21T08:16:00.1670245Z           "complete": false,
2026-06-21T08:16:00.1670384Z           "evidence": []
2026-06-21T08:16:00.1670593Z         },
2026-06-21T08:16:00.1670704Z         "unit": {
2026-06-21T08:16:00.1670812Z           "complete": true,
2026-06-21T08:16:00.1670932Z           "evidence": [
2026-06-21T08:16:00.1671042Z             {
2026-06-21T08:16:00.1671198Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-21T08:16:00.1671317Z               "line": 288
2026-06-21T08:16:00.1671421Z             },
2026-06-21T08:16:00.1671524Z             {
2026-06-21T08:16:00.1671678Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-21T08:16:00.1671796Z               "line": 325
2026-06-21T08:16:00.1671896Z             }
2026-06-21T08:16:00.1671983Z           ]
2026-06-21T08:16:00.1672088Z         }
2026-06-21T08:16:00.1672192Z       }
2026-06-21T08:16:00.1672293Z     },
2026-06-21T08:16:00.1672398Z     {
2026-06-21T08:16:00.1672521Z       "id": "REQ-DAEMON-9",
2026-06-21T08:16:00.1674895Z       "title": "Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.",
2026-06-21T08:16:00.1675023Z       "requiredStages": [
2026-06-21T08:16:00.1675128Z         "impl",
2026-06-21T08:16:00.1675233Z         "unit"
2026-06-21T08:16:00.1675333Z       ],
2026-06-21T08:16:00.1675463Z       "stages": {
2026-06-21T08:16:00.1675567Z         "doc": {
2026-06-21T08:16:00.1675681Z           "complete": false,
2026-06-21T08:16:00.1675811Z           "evidence": []
2026-06-21T08:16:00.1675914Z         },
2026-06-21T08:16:00.1676015Z         "impl": {
2026-06-21T08:16:00.1676131Z           "complete": true,
2026-06-21T08:16:00.1676253Z           "evidence": [
2026-06-21T08:16:00.1676362Z             {
2026-06-21T08:16:00.1676518Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1676636Z               "line": 276
2026-06-21T08:16:00.1676741Z             },
2026-06-21T08:16:00.1676847Z             {
2026-06-21T08:16:00.1676998Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.1677104Z               "line": 1201
2026-06-21T08:16:00.1677208Z             },
2026-06-21T08:16:00.1677317Z             {
2026-06-21T08:16:00.1677462Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.1677575Z               "line": 197
2026-06-21T08:16:00.1677691Z             },
2026-06-21T08:16:00.1677795Z             {
2026-06-21T08:16:00.1677942Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.1678067Z               "line": 344
2026-06-21T08:16:00.1678172Z             },
2026-06-21T08:16:00.1678271Z             {
2026-06-21T08:16:00.1678411Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.1678525Z               "line": 381
2026-06-21T08:16:00.1678630Z             },
2026-06-21T08:16:00.1678730Z             {
2026-06-21T08:16:00.1678863Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1679045Z               "line": 2075
2026-06-21T08:16:00.1679139Z             }
2026-06-21T08:16:00.1679229Z           ]
2026-06-21T08:16:00.1679334Z         },
2026-06-21T08:16:00.1679437Z         "int": {
2026-06-21T08:16:00.1679560Z           "complete": false,
2026-06-21T08:16:00.1679681Z           "evidence": []
2026-06-21T08:16:00.1679771Z         },
2026-06-21T08:16:00.1679995Z         "unit": {
2026-06-21T08:16:00.1680100Z           "complete": true,
2026-06-21T08:16:00.1680233Z           "evidence": [
2026-06-21T08:16:00.1680452Z             {
2026-06-21T08:16:00.1680592Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.1680705Z               "line": 1158
2026-06-21T08:16:00.1680809Z             },
2026-06-21T08:16:00.1680916Z             {
2026-06-21T08:16:00.1681048Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1681168Z               "line": 10580
2026-06-21T08:16:00.1681269Z             }
2026-06-21T08:16:00.1681372Z           ]
2026-06-21T08:16:00.1681473Z         }
2026-06-21T08:16:00.1681574Z       }
2026-06-21T08:16:00.1681668Z     },
2026-06-21T08:16:00.1681763Z     {
2026-06-21T08:16:00.1681877Z       "id": "REQ-DOCS-1",
2026-06-21T08:16:00.1682098Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-21T08:16:00.1682218Z       "requiredStages": [
2026-06-21T08:16:00.1682333Z         "doc",
2026-06-21T08:16:00.1682437Z         "impl"
2026-06-21T08:16:00.1682529Z       ],
2026-06-21T08:16:00.1682643Z       "stages": {
2026-06-21T08:16:00.1682752Z         "doc": {
2026-06-21T08:16:00.1682863Z           "complete": true,
2026-06-21T08:16:00.1682977Z           "evidence": [
2026-06-21T08:16:00.1683086Z             {
2026-06-21T08:16:00.1683215Z               "path": "docs-site/src/index.md",
2026-06-21T08:16:00.1683324Z               "line": 50
2026-06-21T08:16:00.1683419Z             }
2026-06-21T08:16:00.1683525Z           ]
2026-06-21T08:16:00.1683620Z         },
2026-06-21T08:16:00.1683725Z         "impl": {
2026-06-21T08:16:00.1683850Z           "complete": true,
2026-06-21T08:16:00.1683959Z           "evidence": [
2026-06-21T08:16:00.1684064Z             {
2026-06-21T08:16:00.1684216Z               "path": ".github/workflows/docs-publish.yml",
2026-06-21T08:16:00.1684335Z               "line": 12
2026-06-21T08:16:00.1684432Z             },
2026-06-21T08:16:00.1684540Z             {
2026-06-21T08:16:00.1684691Z               "path": "crates/xtask/src/main.rs",
2026-06-21T08:16:00.1684793Z               "line": 14
2026-06-21T08:16:00.1684901Z             }
2026-06-21T08:16:00.1684996Z           ]
2026-06-21T08:16:00.1685103Z         },
2026-06-21T08:16:00.1685207Z         "int": {
2026-06-21T08:16:00.1685321Z           "complete": false,
2026-06-21T08:16:00.1685441Z           "evidence": []
2026-06-21T08:16:00.1685541Z         },
2026-06-21T08:16:00.1685650Z         "unit": {
2026-06-21T08:16:00.1685765Z           "complete": false,
2026-06-21T08:16:00.1685883Z           "evidence": []
2026-06-21T08:16:00.1685984Z         }
2026-06-21T08:16:00.1686094Z       }
2026-06-21T08:16:00.1686198Z     },
2026-06-21T08:16:00.1686299Z     {
2026-06-21T08:16:00.1686418Z       "id": "REQ-DOCS-2",
2026-06-21T08:16:00.1686613Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-21T08:16:00.1686733Z       "requiredStages": [
2026-06-21T08:16:00.1686837Z         "doc",
2026-06-21T08:16:00.1686946Z         "int"
2026-06-21T08:16:00.1687051Z       ],
2026-06-21T08:16:00.1687158Z       "stages": {
2026-06-21T08:16:00.1687273Z         "doc": {
2026-06-21T08:16:00.1687383Z           "complete": true,
2026-06-21T08:16:00.1687501Z           "evidence": [
2026-06-21T08:16:00.1687606Z             {
2026-06-21T08:16:00.1687816Z               "path": "docs-site/src/harness-contract/integration-checklist.md",
2026-06-21T08:16:00.1687926Z               "line": 3
2026-06-21T08:16:00.1688031Z             },
2026-06-21T08:16:00.1688135Z             {
2026-06-21T08:16:00.1688285Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-21T08:16:00.1688403Z               "line": 3
2026-06-21T08:16:00.1688498Z             },
2026-06-21T08:16:00.1688609Z             {
2026-06-21T08:16:00.1688765Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-21T08:16:00.1688876Z               "line": 3
2026-06-21T08:16:00.1689070Z             }
2026-06-21T08:16:00.1689176Z           ]
2026-06-21T08:16:00.1689385Z         },
2026-06-21T08:16:00.1689491Z         "impl": {
2026-06-21T08:16:00.1689605Z           "complete": false,
2026-06-21T08:16:00.1689798Z           "evidence": []
2026-06-21T08:16:00.1689899Z         },
2026-06-21T08:16:00.1690006Z         "int": {
2026-06-21T08:16:00.1690120Z           "complete": true,
2026-06-21T08:16:00.1690236Z           "evidence": [
2026-06-21T08:16:00.1690331Z             {
2026-06-21T08:16:00.1690478Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-21T08:16:00.1690589Z               "line": 14
2026-06-21T08:16:00.1690693Z             }
2026-06-21T08:16:00.1690803Z           ]
2026-06-21T08:16:00.1690903Z         },
2026-06-21T08:16:00.1691007Z         "unit": {
2026-06-21T08:16:00.1691113Z           "complete": false,
2026-06-21T08:16:00.1691232Z           "evidence": []
2026-06-21T08:16:00.1691332Z         }
2026-06-21T08:16:00.1691432Z       }
2026-06-21T08:16:00.1691533Z     },
2026-06-21T08:16:00.1691632Z     {
2026-06-21T08:16:00.1691762Z       "id": "REQ-DOCS-3",
2026-06-21T08:16:00.1692018Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-21T08:16:00.1692148Z       "requiredStages": [
2026-06-21T08:16:00.1692252Z         "doc"
2026-06-21T08:16:00.1692356Z       ],
2026-06-21T08:16:00.1692470Z       "stages": {
2026-06-21T08:16:00.1692573Z         "doc": {
2026-06-21T08:16:00.1692687Z           "complete": true,
2026-06-21T08:16:00.1692798Z           "evidence": [
2026-06-21T08:16:00.1692902Z             {
2026-06-21T08:16:00.1693040Z               "path": "docs-site/src/index.md",
2026-06-21T08:16:00.1693151Z               "line": 42
2026-06-21T08:16:00.1693255Z             }
2026-06-21T08:16:00.1693355Z           ]
2026-06-21T08:16:00.1693461Z         },
2026-06-21T08:16:00.1693570Z         "impl": {
2026-06-21T08:16:00.1693685Z           "complete": false,
2026-06-21T08:16:00.1693804Z           "evidence": []
2026-06-21T08:16:00.1693903Z         },
2026-06-21T08:16:00.1693999Z         "int": {
2026-06-21T08:16:00.1694133Z           "complete": false,
2026-06-21T08:16:00.1694246Z           "evidence": []
2026-06-21T08:16:00.1694362Z         },
2026-06-21T08:16:00.1694475Z         "unit": {
2026-06-21T08:16:00.1694590Z           "complete": false,
2026-06-21T08:16:00.1694701Z           "evidence": []
2026-06-21T08:16:00.1694804Z         }
2026-06-21T08:16:00.1694895Z       }
2026-06-21T08:16:00.1695001Z     },
2026-06-21T08:16:00.1695105Z     {
2026-06-21T08:16:00.1695223Z       "id": "REQ-DOCS-4",
2026-06-21T08:16:00.1695448Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-21T08:16:00.1695566Z       "requiredStages": [
2026-06-21T08:16:00.1695677Z         "doc",
2026-06-21T08:16:00.1695786Z         "impl",
2026-06-21T08:16:00.1695890Z         "unit"
2026-06-21T08:16:00.1695992Z       ],
2026-06-21T08:16:00.1696106Z       "stages": {
2026-06-21T08:16:00.1696215Z         "doc": {
2026-06-21T08:16:00.1696330Z           "complete": true,
2026-06-21T08:16:00.1696449Z           "evidence": [
2026-06-21T08:16:00.1696544Z             {
2026-06-21T08:16:00.1696673Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-21T08:16:00.1696787Z               "line": 35
2026-06-21T08:16:00.1696898Z             }
2026-06-21T08:16:00.1697007Z           ]
2026-06-21T08:16:00.1697106Z         },
2026-06-21T08:16:00.1697217Z         "impl": {
2026-06-21T08:16:00.1697331Z           "complete": true,
2026-06-21T08:16:00.1697449Z           "evidence": [
2026-06-21T08:16:00.1697549Z             {
2026-06-21T08:16:00.1697694Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.1697808Z               "line": 746
2026-06-21T08:16:00.1697910Z             },
2026-06-21T08:16:00.1698014Z             {
2026-06-21T08:16:00.1698148Z               "path": "crates/xtask/src/main.rs",
2026-06-21T08:16:00.1698258Z               "line": 15
2026-06-21T08:16:00.1698362Z             }
2026-06-21T08:16:00.1698467Z           ]
2026-06-21T08:16:00.1698572Z         },
2026-06-21T08:16:00.1698757Z         "int": {
2026-06-21T08:16:00.1698883Z           "complete": false,
2026-06-21T08:16:00.1699130Z           "evidence": []
2026-06-21T08:16:00.1699235Z         },
2026-06-21T08:16:00.1699344Z         "unit": {
2026-06-21T08:16:00.1699465Z           "complete": true,
2026-06-21T08:16:00.1699578Z           "evidence": [
2026-06-21T08:16:00.1699678Z             {
2026-06-21T08:16:00.1699832Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.1699940Z               "line": 1682
2026-06-21T08:16:00.1700046Z             }
2026-06-21T08:16:00.1700147Z           ]
2026-06-21T08:16:00.1700255Z         }
2026-06-21T08:16:00.1700358Z       }
2026-06-21T08:16:00.1700450Z     },
2026-06-21T08:16:00.1700557Z     {
2026-06-21T08:16:00.1700666Z       "id": "REQ-DOCS-5",
2026-06-21T08:16:00.1700895Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-21T08:16:00.1701010Z       "requiredStages": [
2026-06-21T08:16:00.1701111Z         "impl",
2026-06-21T08:16:00.1701224Z         "int"
2026-06-21T08:16:00.1701329Z       ],
2026-06-21T08:16:00.1701440Z       "stages": {
2026-06-21T08:16:00.1701553Z         "doc": {
2026-06-21T08:16:00.1701673Z           "complete": false,
2026-06-21T08:16:00.1701783Z           "evidence": []
2026-06-21T08:16:00.1701882Z         },
2026-06-21T08:16:00.1701993Z         "impl": {
2026-06-21T08:16:00.1702107Z           "complete": true,
2026-06-21T08:16:00.1702226Z           "evidence": [
2026-06-21T08:16:00.1702332Z             {
2026-06-21T08:16:00.1702488Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.1702593Z               "line": 747
2026-06-21T08:16:00.1702694Z             },
2026-06-21T08:16:00.1702807Z             {
2026-06-21T08:16:00.1702935Z               "path": "crates/xtask/src/main.rs",
2026-06-21T08:16:00.1703045Z               "line": 113
2026-06-21T08:16:00.1703148Z             }
2026-06-21T08:16:00.1703247Z           ]
2026-06-21T08:16:00.1703334Z         },
2026-06-21T08:16:00.1703444Z         "int": {
2026-06-21T08:16:00.1703562Z           "complete": true,
2026-06-21T08:16:00.1703668Z           "evidence": [
2026-06-21T08:16:00.1703773Z             {
2026-06-21T08:16:00.1703901Z               "path": ".github/workflows/ci.yml",
2026-06-21T08:16:00.1704016Z               "line": 208
2026-06-21T08:16:00.1704111Z             },
2026-06-21T08:16:00.1704211Z             {
2026-06-21T08:16:00.1704364Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.1704468Z               "line": 1719
2026-06-21T08:16:00.1704579Z             }
2026-06-21T08:16:00.1704669Z           ]
2026-06-21T08:16:00.1704774Z         },
2026-06-21T08:16:00.1704879Z         "unit": {
2026-06-21T08:16:00.1705007Z           "complete": false,
2026-06-21T08:16:00.1705122Z           "evidence": []
2026-06-21T08:16:00.1705223Z         }
2026-06-21T08:16:00.1705322Z       }
2026-06-21T08:16:00.1705422Z     },
2026-06-21T08:16:00.1705533Z     {
2026-06-21T08:16:00.1705651Z       "id": "REQ-DOCS-6",
2026-06-21T08:16:00.1706017Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-21T08:16:00.1706145Z       "requiredStages": [
2026-06-21T08:16:00.1706252Z         "impl",
2026-06-21T08:16:00.1706365Z         "unit",
2026-06-21T08:16:00.1706465Z         "int"
2026-06-21T08:16:00.1706566Z       ],
2026-06-21T08:16:00.1706675Z       "stages": {
2026-06-21T08:16:00.1706785Z         "doc": {
2026-06-21T08:16:00.1706900Z           "complete": true,
2026-06-21T08:16:00.1707004Z           "evidence": [
2026-06-21T08:16:00.1707119Z             {
2026-06-21T08:16:00.1707280Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-21T08:16:00.1707385Z               "line": 4
2026-06-21T08:16:00.1707477Z             }
2026-06-21T08:16:00.1707595Z           ]
2026-06-21T08:16:00.1707705Z         },
2026-06-21T08:16:00.1707816Z         "impl": {
2026-06-21T08:16:00.1707938Z           "complete": true,
2026-06-21T08:16:00.1708157Z           "evidence": [
2026-06-21T08:16:00.1708269Z             {
2026-06-21T08:16:00.1708484Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1708607Z               "line": 5240
2026-06-21T08:16:00.1708722Z             }
2026-06-21T08:16:00.1708827Z           ]
2026-06-21T08:16:00.1709017Z         },
2026-06-21T08:16:00.1709119Z         "int": {
2026-06-21T08:16:00.1709232Z           "complete": true,
2026-06-21T08:16:00.1709347Z           "evidence": [
2026-06-21T08:16:00.1709461Z             {
2026-06-21T08:16:00.1709613Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-21T08:16:00.1709724Z               "line": 39
2026-06-21T08:16:00.1709818Z             }
2026-06-21T08:16:00.1709923Z           ]
2026-06-21T08:16:00.1710034Z         },
2026-06-21T08:16:00.1710138Z         "unit": {
2026-06-21T08:16:00.1710257Z           "complete": true,
2026-06-21T08:16:00.1710369Z           "evidence": [
2026-06-21T08:16:00.1710467Z             {
2026-06-21T08:16:00.1710606Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1710726Z               "line": 10742
2026-06-21T08:16:00.1710829Z             }
2026-06-21T08:16:00.1710928Z           ]
2026-06-21T08:16:00.1711034Z         }
2026-06-21T08:16:00.1711131Z       }
2026-06-21T08:16:00.1711235Z     },
2026-06-21T08:16:00.1711342Z     {
2026-06-21T08:16:00.1711460Z       "id": "REQ-ELEVATE-1",
2026-06-21T08:16:00.1714609Z       "title": "Cross-platform self-elevating re-launch for privilege-gated commands: a pure decision seam `decide_elevation_path(os, elevation, interactive_tty, has_display, has_pkexec, has_term_emulator) -> ElevatePath{AlreadyElevated, InlineSudo, UacWindow, Pkexec, TerminalEmulator, PrintHint}` selecting how to re-acquire privilege, and the per-OS impure launchers it dispatches — Windows UAC console (ShellExecuteW `runas` on the abs-exe + verbatim argv; the elevated child does the work, prints 'You can close this window', and pauses for a keypress; the original prints 'Elevated terminal launched…' and exits 0; NEVER pipes the child's stdout back across the privilege boundary), Linux desktop pkexec (preferred, native polkit GUI auth) else x-terminal-emulator -e sudo (fallback list x-terminal-emulator→gnome-terminal→konsole→xterm), the existing interactive-TTY inline sudo, and the headless/no-path floor that prints the absolute-path command. Reused by every gated command (not subnet-specific). Generalizes should_auto_elevate.",
2026-06-21T08:16:00.1714766Z       "requiredStages": [
2026-06-21T08:16:00.1714867Z         "doc",
2026-06-21T08:16:00.1714976Z         "impl",
2026-06-21T08:16:00.1715086Z         "unit"
2026-06-21T08:16:00.1715182Z       ],
2026-06-21T08:16:00.1715296Z       "stages": {
2026-06-21T08:16:00.1715395Z         "doc": {
2026-06-21T08:16:00.1715516Z           "complete": true,
2026-06-21T08:16:00.1715629Z           "evidence": [
2026-06-21T08:16:00.1715740Z             {
2026-06-21T08:16:00.1715863Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.1715987Z               "line": 687
2026-06-21T08:16:00.1716098Z             }
2026-06-21T08:16:00.1716188Z           ]
2026-06-21T08:16:00.1716305Z         },
2026-06-21T08:16:00.1716410Z         "impl": {
2026-06-21T08:16:00.1716531Z           "complete": true,
2026-06-21T08:16:00.1716638Z           "evidence": [
2026-06-21T08:16:00.1716745Z             {
2026-06-21T08:16:00.1716874Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1716987Z               "line": 3572
2026-06-21T08:16:00.1717098Z             },
2026-06-21T08:16:00.1717203Z             {
2026-06-21T08:16:00.1717336Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1717441Z               "line": 3617
2026-06-21T08:16:00.1717546Z             },
2026-06-21T08:16:00.1717660Z             {
2026-06-21T08:16:00.1717784Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1717889Z               "line": 3679
2026-06-21T08:16:00.1717999Z             },
2026-06-21T08:16:00.1718104Z             {
2026-06-21T08:16:00.1718381Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.1718484Z               "line": 92
2026-06-21T08:16:00.1718683Z             },
2026-06-21T08:16:00.1718787Z             {
2026-06-21T08:16:00.1718929Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.1719401Z               "line": 148
2026-06-21T08:16:00.1719617Z             }
2026-06-21T08:16:00.1719745Z           ]
2026-06-21T08:16:00.1719873Z         },
2026-06-21T08:16:00.1720003Z         "int": {
2026-06-21T08:16:00.1720154Z           "complete": false,
2026-06-21T08:16:00.1720299Z           "evidence": []
2026-06-21T08:16:00.1720422Z         },
2026-06-21T08:16:00.1720556Z         "unit": {
2026-06-21T08:16:00.1720703Z           "complete": true,
2026-06-21T08:16:00.1720832Z           "evidence": [
2026-06-21T08:16:00.1720952Z             {
2026-06-21T08:16:00.1721132Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.1721267Z               "line": 442
2026-06-21T08:16:00.1721422Z             },
2026-06-21T08:16:00.1721551Z             {
2026-06-21T08:16:00.1721734Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.1721868Z               "line": 460
2026-06-21T08:16:00.1721993Z             }
2026-06-21T08:16:00.1722116Z           ]
2026-06-21T08:16:00.1722236Z         }
2026-06-21T08:16:00.1722349Z       }
2026-06-21T08:16:00.1722479Z     },
2026-06-21T08:16:00.1722602Z     {
2026-06-21T08:16:00.1722774Z       "id": "REQ-ENDPOINT-LIST-MERGE-LOCAL",
2026-06-21T08:16:00.1725098Z       "title": "`spt endpoint list` always merges this node's LOCAL (unadvertised) perches into the view; the `--local` flag is REMOVED (operator decision 2026-06-17). Rationale: `spt whoami` is a thin alias of `endpoint list` — a just-online agent running `whoami` must see its OWN perch, or it gets an omitted-self view ('chaos'). FIX: drop the `--local` flag + its `--detail` conflict test + the v0.10.0 REQ-PICKER-5 hint line (cli.rs:1678) + cmd_list_local; the bare list merges local perches into the subnet view; fix the whoami alias path accordingly. Run `cargo run -p xtask -- gen` (docs-drift, DEFAULT target). (v0.12.1)",
2026-06-21T08:16:00.1725278Z       "requiredStages": [
2026-06-21T08:16:00.1725404Z         "doc",
2026-06-21T08:16:00.1725531Z         "impl",
2026-06-21T08:16:00.1725665Z         "unit"
2026-06-21T08:16:00.1725794Z       ],
2026-06-21T08:16:00.1725922Z       "stages": {
2026-06-21T08:16:00.1726048Z         "doc": {
2026-06-21T08:16:00.1726194Z           "complete": true,
2026-06-21T08:16:00.1726329Z           "evidence": [
2026-06-21T08:16:00.1726465Z             {
2026-06-21T08:16:00.1726620Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.1726762Z               "line": 711
2026-06-21T08:16:00.1726879Z             }
2026-06-21T08:16:00.1727000Z           ]
2026-06-21T08:16:00.1727128Z         },
2026-06-21T08:16:00.1727252Z         "impl": {
2026-06-21T08:16:00.1727386Z           "complete": true,
2026-06-21T08:16:00.1727514Z           "evidence": [
2026-06-21T08:16:00.1727648Z             {
2026-06-21T08:16:00.1727814Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1727963Z               "line": 1721
2026-06-21T08:16:00.1728096Z             },
2026-06-21T08:16:00.1728210Z             {
2026-06-21T08:16:00.1728377Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1728510Z               "line": 3125
2026-06-21T08:16:00.1728645Z             },
2026-06-21T08:16:00.1728768Z             {
2026-06-21T08:16:00.1728931Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1729167Z               "line": 3134
2026-06-21T08:16:00.1729296Z             }
2026-06-21T08:16:00.1729422Z           ]
2026-06-21T08:16:00.1729552Z         },
2026-06-21T08:16:00.1729685Z         "int": {
2026-06-21T08:16:00.1729828Z           "complete": false,
2026-06-21T08:16:00.1729962Z           "evidence": []
2026-06-21T08:16:00.1730090Z         },
2026-06-21T08:16:00.1730220Z         "unit": {
2026-06-21T08:16:00.1730549Z           "complete": true,
2026-06-21T08:16:00.1730677Z           "evidence": [
2026-06-21T08:16:00.1730786Z             {
2026-06-21T08:16:00.1731001Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1731116Z               "line": 7950
2026-06-21T08:16:00.1731226Z             },
2026-06-21T08:16:00.1731326Z             {
2026-06-21T08:16:00.1731460Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1731569Z               "line": 7991
2026-06-21T08:16:00.1731678Z             }
2026-06-21T08:16:00.1731770Z           ]
2026-06-21T08:16:00.1731870Z         }
2026-06-21T08:16:00.1731977Z       }
2026-06-21T08:16:00.1732082Z     },
2026-06-21T08:16:00.1732196Z     {
2026-06-21T08:16:00.1732318Z       "id": "REQ-ENDPOINT-PURGE",
2026-06-21T08:16:00.1737069Z       "title": "`spt endpoint purge <id>` fully removes an endpoint AND every record keyed on it — the formal teardown devs/CI need for clean test setup/reset. NOT consent-gated (a local dev/test op — no peer consent). OFFLINE-ONLY: refuses while the endpoint is online / daemon-hosted (deleting records out from under a live host risks the daemon re-creating or re-hosting mid-purge); `--force` STOPS it first (endpoint stop → wait for the daemon reconcile to un-host + reap the Psyche) THEN purges. Confirms interactively unless `--yes` (the CI path). Refuses purging the CALLER's OWN running id. All LOCAL — purge reaches only THIS node's records; a remote endpoint's records can't be touched, and its subnet-registry rows decay via the epoch-lease eviction (REQ-HAZARD-REGISTRY-DECAY). Removes: (1) the perch dir TREE recursively — owlery/<id>/ incl every nested {id}-psyche / {id}-w* / shells child (info.json, ready marker, sessions.log ledger, spool.db, inbox, .idle/.more-done sentinels, auth token); (2) the registry address (registry::unregister_address); (3) the context store — ContextStore::remove_endpoint(id): the a-<id> branch+worktree + the <id>/ rows from every p-<project> branch (the same fn `fork --delete-source` already uses); (4) node-local trust rows keyed on the id — access.json + visibility.json. Reuse-heavy: it is `fork --delete-source` generalized (recursive perch remove + unregister + remove_endpoint) + the trust-record cleanup; `endpoint rename` already enumerates the same record set + uses the same offline-only gate. (v0.12.0)",
2026-06-21T08:16:00.1737275Z       "requiredStages": [
2026-06-21T08:16:00.1737378Z         "doc",
2026-06-21T08:16:00.1737492Z         "impl",
2026-06-21T08:16:00.1737598Z         "unit",
2026-06-21T08:16:00.1737712Z         "int"
2026-06-21T08:16:00.1737812Z       ],
2026-06-21T08:16:00.1737927Z       "stages": {
2026-06-21T08:16:00.1738026Z         "doc": {
2026-06-21T08:16:00.1738141Z           "complete": true,
2026-06-21T08:16:00.1738256Z           "evidence": [
2026-06-21T08:16:00.1738365Z             {
2026-06-21T08:16:00.1738509Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.1738623Z               "line": 163
2026-06-21T08:16:00.1738737Z             }
2026-06-21T08:16:00.1738876Z           ]
2026-06-21T08:16:00.1739070Z         },
2026-06-21T08:16:00.1739186Z         "impl": {
2026-06-21T08:16:00.1739299Z           "complete": true,
2026-06-21T08:16:00.1739409Z           "evidence": [
2026-06-21T08:16:00.1739515Z             {
2026-06-21T08:16:00.1739680Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-21T08:16:00.1739800Z               "line": 105
2026-06-21T08:16:00.1739898Z             },
2026-06-21T08:16:00.1740006Z             {
2026-06-21T08:16:00.1740131Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1740250Z               "line": 7219
2026-06-21T08:16:00.1740349Z             }
2026-06-21T08:16:00.1740455Z           ]
2026-06-21T08:16:00.1740565Z         },
2026-06-21T08:16:00.1740674Z         "int": {
2026-06-21T08:16:00.1740794Z           "complete": true,
2026-06-21T08:16:00.1740898Z           "evidence": [
2026-06-21T08:16:00.1741008Z             {
2026-06-21T08:16:00.1741132Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1741361Z               "line": 7384
2026-06-21T08:16:00.1741475Z             }
2026-06-21T08:16:00.1741571Z           ]
2026-06-21T08:16:00.1741776Z         },
2026-06-21T08:16:00.1741876Z         "unit": {
2026-06-21T08:16:00.1741986Z           "complete": true,
2026-06-21T08:16:00.1742096Z           "evidence": [
2026-06-21T08:16:00.1742200Z             {
2026-06-21T08:16:00.1742335Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1742439Z               "line": 7355
2026-06-21T08:16:00.1742552Z             }
2026-06-21T08:16:00.1742647Z           ]
2026-06-21T08:16:00.1742751Z         }
2026-06-21T08:16:00.1742859Z       }
2026-06-21T08:16:00.1742965Z     },
2026-06-21T08:16:00.1743074Z     {
2026-06-21T08:16:00.1743207Z       "id": "REQ-ENDPOINT-STOP-OFFLINE",
2026-06-21T08:16:00.1744548Z       "title": "H3: `spt endpoint stop <id>` marks the endpoint OFFLINE (alive=false), not merely de-readied. cmd_stop (cli.rs:2994-3010) removes the ready marker + unregisters the address but does NOT set status offline, so a stopped daemon-hosted endpoint still reports alive=true (status=online latch). FIX: add set_status(perch, STATUS_OFFLINE) to cmd_stop — folds with B2 (same setter). Unit: stop → is_perch_alive=false / alive=false. (v0.12.0)",
2026-06-21T08:16:00.1744686Z       "requiredStages": [
2026-06-21T08:16:00.1744800Z         "impl",
2026-06-21T08:16:00.1744906Z         "unit"
2026-06-21T08:16:00.1745006Z       ],
2026-06-21T08:16:00.1745109Z       "stages": {
2026-06-21T08:16:00.1745219Z         "doc": {
2026-06-21T08:16:00.1745332Z           "complete": false,
2026-06-21T08:16:00.1745445Z           "evidence": []
2026-06-21T08:16:00.1745545Z         },
2026-06-21T08:16:00.1745657Z         "impl": {
2026-06-21T08:16:00.1745760Z           "complete": true,
2026-06-21T08:16:00.1745875Z           "evidence": [
2026-06-21T08:16:00.1745985Z             {
2026-06-21T08:16:00.1746122Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1746228Z               "line": 3165
2026-06-21T08:16:00.1746356Z             }
2026-06-21T08:16:00.1746456Z           ]
2026-06-21T08:16:00.1746562Z         },
2026-06-21T08:16:00.1746699Z         "int": {
2026-06-21T08:16:00.1746814Z           "complete": false,
2026-06-21T08:16:00.1746937Z           "evidence": []
2026-06-21T08:16:00.1747038Z         },
2026-06-21T08:16:00.1747149Z         "unit": {
2026-06-21T08:16:00.1747266Z           "complete": true,
2026-06-21T08:16:00.1747377Z           "evidence": [
2026-06-21T08:16:00.1747483Z             {
2026-06-21T08:16:00.1747614Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1747730Z               "line": 7331
2026-06-21T08:16:00.1747831Z             }
2026-06-21T08:16:00.1747938Z           ]
2026-06-21T08:16:00.1748047Z         }
2026-06-21T08:16:00.1748153Z       }
2026-06-21T08:16:00.1748253Z     },
2026-06-21T08:16:00.1748357Z     {
2026-06-21T08:16:00.1748468Z       "id": "REQ-EP-1",
2026-06-21T08:16:00.1748624Z       "title": "Day-one endpoint types; open type system",
2026-06-21T08:16:00.1748759Z       "requiredStages": [
2026-06-21T08:16:00.1748873Z         "impl",
2026-06-21T08:16:00.1749054Z         "unit"
2026-06-21T08:16:00.1749159Z       ],
2026-06-21T08:16:00.1749263Z       "stages": {
2026-06-21T08:16:00.1749369Z         "doc": {
2026-06-21T08:16:00.1749488Z           "complete": false,
2026-06-21T08:16:00.1749607Z           "evidence": []
2026-06-21T08:16:00.1749718Z         },
2026-06-21T08:16:00.1749821Z         "impl": {
2026-06-21T08:16:00.1749941Z           "complete": true,
2026-06-21T08:16:00.1750057Z           "evidence": [
2026-06-21T08:16:00.1750155Z             {
2026-06-21T08:16:00.1750302Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-21T08:16:00.1750411Z               "line": 77
2026-06-21T08:16:00.1750524Z             },
2026-06-21T08:16:00.1750614Z             {
2026-06-21T08:16:00.1750763Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-21T08:16:00.1750872Z               "line": 94
2026-06-21T08:16:00.1751115Z             }
2026-06-21T08:16:00.1751210Z           ]
2026-06-21T08:16:00.1751317Z         },
2026-06-21T08:16:00.1751430Z         "int": {
2026-06-21T08:16:00.1751631Z           "complete": false,
2026-06-21T08:16:00.1751750Z           "evidence": []
2026-06-21T08:16:00.1751854Z         },
2026-06-21T08:16:00.1751956Z         "unit": {
2026-06-21T08:16:00.1752064Z           "complete": true,
2026-06-21T08:16:00.1752183Z           "evidence": [
2026-06-21T08:16:00.1752285Z             {
2026-06-21T08:16:00.1752421Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-21T08:16:00.1752537Z               "line": 161
2026-06-21T08:16:00.1752632Z             },
2026-06-21T08:16:00.1752741Z             {
2026-06-21T08:16:00.1752875Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-21T08:16:00.1752994Z               "line": 178
2026-06-21T08:16:00.1753097Z             }
2026-06-21T08:16:00.1753193Z           ]
2026-06-21T08:16:00.1753297Z         }
2026-06-21T08:16:00.1753401Z       }
2026-06-21T08:16:00.1753510Z     },
2026-06-21T08:16:00.1753611Z     {
2026-06-21T08:16:00.1753730Z       "id": "REQ-EP-2",
2026-06-21T08:16:00.1753940Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-21T08:16:00.1754063Z       "requiredStages": [
2026-06-21T08:16:00.1754169Z         "impl",
2026-06-21T08:16:00.1754259Z         "unit"
2026-06-21T08:16:00.1754364Z       ],
2026-06-21T08:16:00.1754473Z       "stages": {
2026-06-21T08:16:00.1754584Z         "doc": {
2026-06-21T08:16:00.1754698Z           "complete": false,
2026-06-21T08:16:00.1754798Z           "evidence": []
2026-06-21T08:16:00.1754908Z         },
2026-06-21T08:16:00.1755012Z         "impl": {
2026-06-21T08:16:00.1755133Z           "complete": true,
2026-06-21T08:16:00.1755246Z           "evidence": [
2026-06-21T08:16:00.1755351Z             {
2026-06-21T08:16:00.1755500Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-21T08:16:00.1755608Z               "line": 114
2026-06-21T08:16:00.1755712Z             },
2026-06-21T08:16:00.1755817Z             {
2026-06-21T08:16:00.1755972Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-21T08:16:00.1756082Z               "line": 131
2026-06-21T08:16:00.1756187Z             },
2026-06-21T08:16:00.1756300Z             {
2026-06-21T08:16:00.1756445Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-21T08:16:00.1756555Z               "line": 138
2026-06-21T08:16:00.1756653Z             }
2026-06-21T08:16:00.1756764Z           ]
2026-06-21T08:16:00.1756864Z         },
2026-06-21T08:16:00.1756973Z         "int": {
2026-06-21T08:16:00.1757093Z           "complete": false,
2026-06-21T08:16:00.1757207Z           "evidence": []
2026-06-21T08:16:00.1757312Z         },
2026-06-21T08:16:00.1757418Z         "unit": {
2026-06-21T08:16:00.1757532Z           "complete": true,
2026-06-21T08:16:00.1757636Z           "evidence": [
2026-06-21T08:16:00.1757747Z             {
2026-06-21T08:16:00.1757889Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-21T08:16:00.1758000Z               "line": 190
2026-06-21T08:16:00.1758109Z             },
2026-06-21T08:16:00.1758218Z             {
2026-06-21T08:16:00.1758367Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-21T08:16:00.1758484Z               "line": 208
2026-06-21T08:16:00.1758588Z             },
2026-06-21T08:16:00.1763503Z             {
2026-06-21T08:16:00.1763700Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-21T08:16:00.1763820Z               "line": 221
2026-06-21T08:16:00.1763923Z             }
2026-06-21T08:16:00.1764036Z           ]
2026-06-21T08:16:00.1764142Z         }
2026-06-21T08:16:00.1764242Z       }
2026-06-21T08:16:00.1764351Z     },
2026-06-21T08:16:00.1764452Z     {
2026-06-21T08:16:00.1764567Z       "id": "REQ-EP-3",
2026-06-21T08:16:00.1764791Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-21T08:16:00.1764919Z       "requiredStages": [
2026-06-21T08:16:00.1765024Z         "impl",
2026-06-21T08:16:00.1765291Z         "unit"
2026-06-21T08:16:00.1765393Z       ],
2026-06-21T08:16:00.1765501Z       "stages": {
2026-06-21T08:16:00.1765703Z         "doc": {
2026-06-21T08:16:00.1765825Z           "complete": false,
2026-06-21T08:16:00.1765949Z           "evidence": []
2026-06-21T08:16:00.1766046Z         },
2026-06-21T08:16:00.1766159Z         "impl": {
2026-06-21T08:16:00.1766277Z           "complete": true,
2026-06-21T08:16:00.1766391Z           "evidence": [
2026-06-21T08:16:00.1766494Z             {
2026-06-21T08:16:00.1766652Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-21T08:16:00.1766767Z               "line": 31
2026-06-21T08:16:00.1766875Z             },
2026-06-21T08:16:00.1766986Z             {
2026-06-21T08:16:00.1767138Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-21T08:16:00.1767252Z               "line": 49
2026-06-21T08:16:00.1767353Z             }
2026-06-21T08:16:00.1767453Z           ]
2026-06-21T08:16:00.1767562Z         },
2026-06-21T08:16:00.1767668Z         "int": {
2026-06-21T08:16:00.1767796Z           "complete": false,
2026-06-21T08:16:00.1767905Z           "evidence": []
2026-06-21T08:16:00.1768016Z         },
2026-06-21T08:16:00.1768130Z         "unit": {
2026-06-21T08:16:00.1768245Z           "complete": true,
2026-06-21T08:16:00.1768363Z           "evidence": [
2026-06-21T08:16:00.1768463Z             {
2026-06-21T08:16:00.1768612Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-21T08:16:00.1768720Z               "line": 156
2026-06-21T08:16:00.1768821Z             },
2026-06-21T08:16:00.1768922Z             {
2026-06-21T08:16:00.1769154Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-21T08:16:00.1769264Z               "line": 164
2026-06-21T08:16:00.1769369Z             },
2026-06-21T08:16:00.1769482Z             {
2026-06-21T08:16:00.1769626Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-21T08:16:00.1769735Z               "line": 177
2026-06-21T08:16:00.1769846Z             },
2026-06-21T08:16:00.1769950Z             {
2026-06-21T08:16:00.1770097Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-21T08:16:00.1770208Z               "line": 200
2026-06-21T08:16:00.1770322Z             },
2026-06-21T08:16:00.1770427Z             {
2026-06-21T08:16:00.1770566Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-21T08:16:00.1770680Z               "line": 216
2026-06-21T08:16:00.1770775Z             },
2026-06-21T08:16:00.1770881Z             {
2026-06-21T08:16:00.1771022Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-21T08:16:00.1771129Z               "line": 233
2026-06-21T08:16:00.1771238Z             }
2026-06-21T08:16:00.1771346Z           ]
2026-06-21T08:16:00.1771451Z         }
2026-06-21T08:16:00.1771546Z       }
2026-06-21T08:16:00.1771649Z     },
2026-06-21T08:16:00.1771739Z     {
2026-06-21T08:16:00.1771855Z       "id": "REQ-EP-4",
2026-06-21T08:16:00.1772030Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-21T08:16:00.1772150Z       "requiredStages": [
2026-06-21T08:16:00.1772259Z         "impl",
2026-06-21T08:16:00.1772368Z         "unit"
2026-06-21T08:16:00.1772475Z       ],
2026-06-21T08:16:00.1772583Z       "stages": {
2026-06-21T08:16:00.1772693Z         "doc": {
2026-06-21T08:16:00.1772808Z           "complete": false,
2026-06-21T08:16:00.1772917Z           "evidence": []
2026-06-21T08:16:00.1773012Z         },
2026-06-21T08:16:00.1773114Z         "impl": {
2026-06-21T08:16:00.1773232Z           "complete": true,
2026-06-21T08:16:00.1773342Z           "evidence": [
2026-06-21T08:16:00.1773452Z             {
2026-06-21T08:16:00.1773604Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.1773705Z               "line": 764
2026-06-21T08:16:00.1773813Z             },
2026-06-21T08:16:00.1773914Z             {
2026-06-21T08:16:00.1774063Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.1774166Z               "line": 1127
2026-06-21T08:16:00.1774380Z             },
2026-06-21T08:16:00.1774483Z             {
2026-06-21T08:16:00.1774621Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.1774836Z               "line": 2270
2026-06-21T08:16:00.1774931Z             },
2026-06-21T08:16:00.1775041Z             {
2026-06-21T08:16:00.1775188Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T08:16:00.1775299Z               "line": 118
2026-06-21T08:16:00.1775403Z             },
2026-06-21T08:16:00.1775508Z             {
2026-06-21T08:16:00.1775652Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T08:16:00.1775761Z               "line": 699
2026-06-21T08:16:00.1775870Z             },
2026-06-21T08:16:00.1775972Z             {
2026-06-21T08:16:00.1776113Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T08:16:00.1776224Z               "line": 836
2026-06-21T08:16:00.1776324Z             },
2026-06-21T08:16:00.1776432Z             {
2026-06-21T08:16:00.1776582Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.1776700Z               "line": 321
2026-06-21T08:16:00.1776813Z             },
2026-06-21T08:16:00.1776914Z             {
2026-06-21T08:16:00.1777059Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.1777168Z               "line": 508
2026-06-21T08:16:00.1777279Z             },
2026-06-21T08:16:00.1777388Z             {
2026-06-21T08:16:00.1777541Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.1777655Z               "line": 1334
2026-06-21T08:16:00.1777750Z             }
2026-06-21T08:16:00.1777856Z           ]
2026-06-21T08:16:00.1777956Z         },
2026-06-21T08:16:00.1778070Z         "int": {
2026-06-21T08:16:00.1778186Z           "complete": false,
2026-06-21T08:16:00.1778294Z           "evidence": []
2026-06-21T08:16:00.1778399Z         },
2026-06-21T08:16:00.1778500Z         "unit": {
2026-06-21T08:16:00.1778623Z           "complete": true,
2026-06-21T08:16:00.1778732Z           "evidence": [
2026-06-21T08:16:00.1778839Z             {
2026-06-21T08:16:00.1779076Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T08:16:00.1779201Z               "line": 927
2026-06-21T08:16:00.1779304Z             },
2026-06-21T08:16:00.1779401Z             {
2026-06-21T08:16:00.1779567Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-21T08:16:00.1779671Z               "line": 76
2026-06-21T08:16:00.1779771Z             },
2026-06-21T08:16:00.1779872Z             {
2026-06-21T08:16:00.1780028Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-21T08:16:00.1780144Z               "line": 147
2026-06-21T08:16:00.1780244Z             }
2026-06-21T08:16:00.1780348Z           ]
2026-06-21T08:16:00.1780454Z         }
2026-06-21T08:16:00.1780559Z       }
2026-06-21T08:16:00.1780657Z     },
2026-06-21T08:16:00.1780764Z     {
2026-06-21T08:16:00.1780877Z       "id": "REQ-EP-5",
2026-06-21T08:16:00.1781569Z       "title": "Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope",
2026-06-21T08:16:00.1781703Z       "requiredStages": [
2026-06-21T08:16:00.1781812Z         "impl",
2026-06-21T08:16:00.1781916Z         "unit",
2026-06-21T08:16:00.1782021Z         "int"
2026-06-21T08:16:00.1782129Z       ],
2026-06-21T08:16:00.1782238Z       "stages": {
2026-06-21T08:16:00.1782343Z         "doc": {
2026-06-21T08:16:00.1782463Z           "complete": false,
2026-06-21T08:16:00.1782576Z           "evidence": []
2026-06-21T08:16:00.1782681Z         },
2026-06-21T08:16:00.1782782Z         "impl": {
2026-06-21T08:16:00.1782895Z           "complete": true,
2026-06-21T08:16:00.1783006Z           "evidence": [
2026-06-21T08:16:00.1783106Z             {
2026-06-21T08:16:00.1783273Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.1783387Z               "line": 367
2026-06-21T08:16:00.1783592Z             },
2026-06-21T08:16:00.1783697Z             {
2026-06-21T08:16:00.1783854Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-21T08:16:00.1784078Z               "line": 18
2026-06-21T08:16:00.1784178Z             },
2026-06-21T08:16:00.1784285Z             {
2026-06-21T08:16:00.1784436Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-21T08:16:00.1784537Z               "line": 63
2026-06-21T08:16:00.1784647Z             },
2026-06-21T08:16:00.1784754Z             {
2026-06-21T08:16:00.1784902Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-21T08:16:00.1785010Z               "line": 92
2026-06-21T08:16:00.1785119Z             },
2026-06-21T08:16:00.1785219Z             {
2026-06-21T08:16:00.1785367Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-21T08:16:00.1785476Z               "line": 167
2026-06-21T08:16:00.1785578Z             },
2026-06-21T08:16:00.1785677Z             {
2026-06-21T08:16:00.1785830Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-21T08:16:00.1785954Z               "line": 179
2026-06-21T08:16:00.1786068Z             },
2026-06-21T08:16:00.1786178Z             {
2026-06-21T08:16:00.1786331Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.1786430Z               "line": 114
2026-06-21T08:16:00.1786541Z             },
2026-06-21T08:16:00.1786631Z             {
2026-06-21T08:16:00.1786784Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T08:16:00.1786898Z               "line": 22
2026-06-21T08:16:00.1787007Z             },
2026-06-21T08:16:00.1787109Z             {
2026-06-21T08:16:00.1787255Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T08:16:00.1787373Z               "line": 145
2026-06-21T08:16:00.1787483Z             },
2026-06-21T08:16:00.1787586Z             {
2026-06-21T08:16:00.1787719Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T08:16:00.1787829Z               "line": 174
2026-06-21T08:16:00.1787943Z             },
2026-06-21T08:16:00.1788048Z             {
2026-06-21T08:16:00.1788192Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T08:16:00.1788306Z               "line": 196
2026-06-21T08:16:00.1788416Z             },
2026-06-21T08:16:00.1788511Z             {
2026-06-21T08:16:00.1788663Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T08:16:00.1788769Z               "line": 221
2026-06-21T08:16:00.1788878Z             },
2026-06-21T08:16:00.1789055Z             {
2026-06-21T08:16:00.1789198Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T08:16:00.1789316Z               "line": 247
2026-06-21T08:16:00.1789418Z             },
2026-06-21T08:16:00.1789526Z             {
2026-06-21T08:16:00.1789680Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T08:16:00.1789789Z               "line": 270
2026-06-21T08:16:00.1789894Z             },
2026-06-21T08:16:00.1789995Z             {
2026-06-21T08:16:00.1790146Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.1790259Z               "line": 104
2026-06-21T08:16:00.1790356Z             },
2026-06-21T08:16:00.1790466Z             {
2026-06-21T08:16:00.1790588Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1790709Z               "line": 6068
2026-06-21T08:16:00.1790799Z             },
2026-06-21T08:16:00.1790912Z             {
2026-06-21T08:16:00.1791038Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1791147Z               "line": 6202
2026-06-21T08:16:00.1791256Z             },
2026-06-21T08:16:00.1791352Z             {
2026-06-21T08:16:00.1791481Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1791585Z               "line": 6368
2026-06-21T08:16:00.1791696Z             },
2026-06-21T08:16:00.1791805Z             {
2026-06-21T08:16:00.1791935Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1792048Z               "line": 6896
2026-06-21T08:16:00.1792254Z             }
2026-06-21T08:16:00.1792359Z           ]
2026-06-21T08:16:00.1792466Z         },
2026-06-21T08:16:00.1792671Z         "int": {
2026-06-21T08:16:00.1792783Z           "complete": true,
2026-06-21T08:16:00.1792884Z           "evidence": [
2026-06-21T08:16:00.1792994Z             {
2026-06-21T08:16:00.1793155Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-21T08:16:00.1793266Z               "line": 16
2026-06-21T08:16:00.1793370Z             },
2026-06-21T08:16:00.1793470Z             {
2026-06-21T08:16:00.1793619Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-21T08:16:00.1793732Z               "line": 15
2026-06-21T08:16:00.1793843Z             }
2026-06-21T08:16:00.1793943Z           ]
2026-06-21T08:16:00.1794042Z         },
2026-06-21T08:16:00.1794152Z         "unit": {
2026-06-21T08:16:00.1794262Z           "complete": true,
2026-06-21T08:16:00.1794381Z           "evidence": [
2026-06-21T08:16:00.1794482Z             {
2026-06-21T08:16:00.1794633Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-21T08:16:00.1794743Z               "line": 246
2026-06-21T08:16:00.1794859Z             },
2026-06-21T08:16:00.1794948Z             {
2026-06-21T08:16:00.1795097Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-21T08:16:00.1795203Z               "line": 306
2026-06-21T08:16:00.1795305Z             },
2026-06-21T08:16:00.1795409Z             {
2026-06-21T08:16:00.1795557Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-21T08:16:00.1795665Z               "line": 363
2026-06-21T08:16:00.1795770Z             },
2026-06-21T08:16:00.1795880Z             {
2026-06-21T08:16:00.1796027Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T08:16:00.1796138Z               "line": 286
2026-06-21T08:16:00.1796243Z             },
2026-06-21T08:16:00.1796342Z             {
2026-06-21T08:16:00.1796490Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T08:16:00.1796599Z               "line": 338
2026-06-21T08:16:00.1796714Z             },
2026-06-21T08:16:00.1796819Z             {
2026-06-21T08:16:00.1796971Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.1797082Z               "line": 783
2026-06-21T08:16:00.1797181Z             },
2026-06-21T08:16:00.1797291Z             {
2026-06-21T08:16:00.1797411Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1797524Z               "line": 8751
2026-06-21T08:16:00.1797634Z             },
2026-06-21T08:16:00.1797731Z             {
2026-06-21T08:16:00.1797858Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1797962Z               "line": 8904
2026-06-21T08:16:00.1798072Z             },
2026-06-21T08:16:00.1798179Z             {
2026-06-21T08:16:00.1798313Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1798433Z               "line": 9493
2026-06-21T08:16:00.1798537Z             },
2026-06-21T08:16:00.1798637Z             {
2026-06-21T08:16:00.1798761Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1798880Z               "line": 9609
2026-06-21T08:16:00.1799052Z             }
2026-06-21T08:16:00.1799157Z           ]
2026-06-21T08:16:00.1799267Z         }
2026-06-21T08:16:00.1799367Z       }
2026-06-21T08:16:00.1799476Z     },
2026-06-21T08:16:00.1799576Z     {
2026-06-21T08:16:00.1799696Z       "id": "REQ-EP-6",
2026-06-21T08:16:00.1801196Z       "title": "Gateway type acceptance: a Gateway-typed perch binds (api bind --type, open type system — un-hardcode the live_agent default), advertises/addressable like any endpoint, owns shells (owner validation not agent-family-gated), subscribes to digests, and is the user-msg identity gate's user-backed origin (REQ-MSG-5); in-tree mock-gateway fixture (R-DOCS-2 pattern, no downstream adapter code). Cross-node WAN Gateway-origin (registry endpoint_type trust) tracked by REQ-MSG-6",
2026-06-21T08:16:00.1801326Z       "requiredStages": [
2026-06-21T08:16:00.1801435Z         "doc",
2026-06-21T08:16:00.1801664Z         "impl",
2026-06-21T08:16:00.1801773Z         "unit"
2026-06-21T08:16:00.1801884Z       ],
2026-06-21T08:16:00.1802107Z       "stages": {
2026-06-21T08:16:00.1802223Z         "doc": {
2026-06-21T08:16:00.1802336Z           "complete": true,
2026-06-21T08:16:00.1802446Z           "evidence": [
2026-06-21T08:16:00.1802552Z             {
2026-06-21T08:16:00.1802679Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.1802785Z               "line": 227
2026-06-21T08:16:00.1802890Z             }
2026-06-21T08:16:00.1802993Z           ]
2026-06-21T08:16:00.1803102Z         },
2026-06-21T08:16:00.1803212Z         "impl": {
2026-06-21T08:16:00.1803329Z           "complete": true,
2026-06-21T08:16:00.1803434Z           "evidence": [
2026-06-21T08:16:00.1803540Z             {
2026-06-21T08:16:00.1803686Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.1803802Z               "line": 212
2026-06-21T08:16:00.1803907Z             }
2026-06-21T08:16:00.1804020Z           ]
2026-06-21T08:16:00.1804131Z         },
2026-06-21T08:16:00.1804245Z         "int": {
2026-06-21T08:16:00.1804374Z           "complete": true,
2026-06-21T08:16:00.1804489Z           "evidence": [
2026-06-21T08:16:00.1804593Z             {
2026-06-21T08:16:00.1804746Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-21T08:16:00.1804865Z               "line": 18
2026-06-21T08:16:00.1804964Z             }
2026-06-21T08:16:00.1805075Z           ]
2026-06-21T08:16:00.1805180Z         },
2026-06-21T08:16:00.1805279Z         "unit": {
2026-06-21T08:16:00.1805405Z           "complete": true,
2026-06-21T08:16:00.1805518Z           "evidence": [
2026-06-21T08:16:00.1805623Z             {
2026-06-21T08:16:00.1805777Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.1805903Z               "line": 556
2026-06-21T08:16:00.1806013Z             },
2026-06-21T08:16:00.1806117Z             {
2026-06-21T08:16:00.1806268Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.1806383Z               "line": 904
2026-06-21T08:16:00.1806497Z             }
2026-06-21T08:16:00.1806597Z           ]
2026-06-21T08:16:00.1806698Z         }
2026-06-21T08:16:00.1806798Z       }
2026-06-21T08:16:00.1806887Z     },
2026-06-21T08:16:00.1806998Z     {
2026-06-21T08:16:00.1807108Z       "id": "REQ-EP-7",
2026-06-21T08:16:00.1808801Z       "title": "Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-context.md (replicates with the mind on the same a-<id> branch); renders FIRST at start-transition context injection (role -> live-context -> project-context); SOLE writer `spt endpoint role --overwrite <file>` — mechanical no-automated-writer guarantee (echo-commune ingest / signoff / Psyche reconcile structurally exclude it). The user-backed-origin hard gate on the writer is a deferred later tightening (rides the user-msg identity plumbing)",
2026-06-21T08:16:00.1808930Z       "requiredStages": [
2026-06-21T08:16:00.1809116Z         "doc",
2026-06-21T08:16:00.1809241Z         "impl",
2026-06-21T08:16:00.1809350Z         "unit"
2026-06-21T08:16:00.1809459Z       ],
2026-06-21T08:16:00.1809575Z       "stages": {
2026-06-21T08:16:00.1809679Z         "doc": {
2026-06-21T08:16:00.1809793Z           "complete": true,
2026-06-21T08:16:00.1809894Z           "evidence": [
2026-06-21T08:16:00.1810003Z             {
2026-06-21T08:16:00.1810127Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.1810233Z               "line": 490
2026-06-21T08:16:00.1810337Z             }
2026-06-21T08:16:00.1810441Z           ]
2026-06-21T08:16:00.1810552Z         },
2026-06-21T08:16:00.1810656Z         "impl": {
2026-06-21T08:16:00.1810786Z           "complete": true,
2026-06-21T08:16:00.1810891Z           "evidence": [
2026-06-21T08:16:00.1810990Z             {
2026-06-21T08:16:00.1811139Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T08:16:00.1811247Z               "line": 505
2026-06-21T08:16:00.1811356Z             },
2026-06-21T08:16:00.1811451Z             {
2026-06-21T08:16:00.1811699Z               "path": "crates/spt-live/src/resume.rs",
2026-06-21T08:16:00.1811805Z               "line": 87
2026-06-21T08:16:00.1811995Z             },
2026-06-21T08:16:00.1812101Z             {
2026-06-21T08:16:00.1812262Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.1812382Z               "line": 81
2026-06-21T08:16:00.1812482Z             },
2026-06-21T08:16:00.1812587Z             {
2026-06-21T08:16:00.1812740Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.1812858Z               "line": 166
2026-06-21T08:16:00.1812968Z             },
2026-06-21T08:16:00.1813074Z             {
2026-06-21T08:16:00.1813201Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1813306Z               "line": 1645
2026-06-21T08:16:00.1813413Z             }
2026-06-21T08:16:00.1813516Z           ]
2026-06-21T08:16:00.1813620Z         },
2026-06-21T08:16:00.1813725Z         "int": {
2026-06-21T08:16:00.1813856Z           "complete": false,
2026-06-21T08:16:00.1813965Z           "evidence": []
2026-06-21T08:16:00.1814066Z         },
2026-06-21T08:16:00.1814181Z         "unit": {
2026-06-21T08:16:00.1814300Z           "complete": true,
2026-06-21T08:16:00.1814410Z           "evidence": [
2026-06-21T08:16:00.1814524Z             {
2026-06-21T08:16:00.1814663Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T08:16:00.1814777Z               "line": 623
2026-06-21T08:16:00.1814881Z             },
2026-06-21T08:16:00.1814987Z             {
2026-06-21T08:16:00.1815125Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-21T08:16:00.1815234Z               "line": 212
2026-06-21T08:16:00.1815340Z             },
2026-06-21T08:16:00.1815439Z             {
2026-06-21T08:16:00.1815587Z               "path": "crates/spt-live/src/resume.rs",
2026-06-21T08:16:00.1815702Z               "line": 307
2026-06-21T08:16:00.1815812Z             },
2026-06-21T08:16:00.1815922Z             {
2026-06-21T08:16:00.1816073Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1816193Z               "line": 7724
2026-06-21T08:16:00.1816303Z             },
2026-06-21T08:16:00.1816407Z             {
2026-06-21T08:16:00.1816530Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1816654Z               "line": 7751
2026-06-21T08:16:00.1816752Z             }
2026-06-21T08:16:00.1816861Z           ]
2026-06-21T08:16:00.1816963Z         }
2026-06-21T08:16:00.1817072Z       }
2026-06-21T08:16:00.1817180Z     },
2026-06-21T08:16:00.1817282Z     {
2026-06-21T08:16:00.1817400Z       "id": "REQ-FRONT-1",
2026-06-21T08:16:00.1817602Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-21T08:16:00.1817725Z       "requiredStages": [],
2026-06-21T08:16:00.1817829Z       "stages": {
2026-06-21T08:16:00.1817926Z         "doc": {
2026-06-21T08:16:00.1818049Z           "complete": false,
2026-06-21T08:16:00.1818154Z           "evidence": []
2026-06-21T08:16:00.1818264Z         },
2026-06-21T08:16:00.1818369Z         "impl": {
2026-06-21T08:16:00.1818489Z           "complete": false,
2026-06-21T08:16:00.1818607Z           "evidence": []
2026-06-21T08:16:00.1818702Z         },
2026-06-21T08:16:00.1818813Z         "int": {
2026-06-21T08:16:00.1818922Z           "complete": false,
2026-06-21T08:16:00.1819140Z           "evidence": []
2026-06-21T08:16:00.1819244Z         },
2026-06-21T08:16:00.1819352Z         "unit": {
2026-06-21T08:16:00.1819466Z           "complete": false,
2026-06-21T08:16:00.1819573Z           "evidence": []
2026-06-21T08:16:00.1819681Z         }
2026-06-21T08:16:00.1819781Z       }
2026-06-21T08:16:00.1819881Z     },
2026-06-21T08:16:00.1819986Z     {
2026-06-21T08:16:00.1820121Z       "id": "REQ-HAZARD-ATTACH-WEDGE",
2026-06-21T08:16:00.1825479Z       "title": "A legitimately dead PTY child (real crash/kill) + an undrained operator pump must NOT wedge the broker for all other clients. ROOT (v0.12.0 real-harness defect): loopback attach output is a blocking write_all into a bounded 64KB tokio duplex (nethost.rs:1040,1090); when the operator's rc pump stops draining (tab closed) the buffer fills and write_all blocks forever (the 'loopback never hangs' assumption at nethost.rs:1103 is false), parking a worker in the 2-worker net runtime (nethost.rs:640); a couple of these saturate BOTH workers → every new attach / `endpoint run` stalls right after 'PUMP_IPC_READER: spawned' → 30s FIRST_EVENT_GRACE → 'no output / dead or wedged'; `daemon stop` cannot join the stuck workers. DISTINCT from the removed B1 path-(c) mutex deadlock. DISPOSITION = PROVE-DON'T-CHANGE (doyle GATE-PASS @e883f45, 2026-06-18): this ROOT is the SUPERSEDED v0.12.0 hypothesis — the post-L0 code ALREADY prevents the wedge, so NO fail-fast / worker-count code was added. serve_attach forwards fire-and-forget (net_stream_send op_id=None) and the broker-side send_stream is already BROKER-QUIC-DEADLINE-bounded (bounded_block_on, 10s); the loopback duplex is drained broker-INTERNALLY by the operator row's own read pump (RecvHalf::Loopback, retentive_cap==0 → evict-not-park) so a dead rc (a dropped IPC subscriber) never backs peer_w up; bounded_block_on parks the BROKER DISPATCH thread, not a net worker → no worker-pool exhaustion (full mechanism in the required_stages comment). Folds the status=online sub-check: a dead spt-hosted endpoint is marked OFFLINE within one reconcile tick on abrupt child death (broker exit-waiter reaps the session → B2 sees it absent) — PROVEN, no change. (v0.12.1)",
2026-06-21T08:16:00.1825895Z       "requiredStages": [
2026-06-21T08:16:00.1826004Z         "int"
2026-06-21T08:16:00.1826099Z       ],
2026-06-21T08:16:00.1826215Z       "stages": {
2026-06-21T08:16:00.1826328Z         "doc": {
2026-06-21T08:16:00.1826443Z           "complete": false,
2026-06-21T08:16:00.1826563Z           "evidence": []
2026-06-21T08:16:00.1826666Z         },
2026-06-21T08:16:00.1826778Z         "impl": {
2026-06-21T08:16:00.1826897Z           "complete": false,
2026-06-21T08:16:00.1827014Z           "evidence": []
2026-06-21T08:16:00.1827157Z         },
2026-06-21T08:16:00.1827260Z         "int": {
2026-06-21T08:16:00.1827383Z           "complete": true,
2026-06-21T08:16:00.1827523Z           "evidence": [
2026-06-21T08:16:00.1827627Z             {
2026-06-21T08:16:00.1827790Z               "path": "crates/spt/tests/attach_wedge_e2e.rs",
2026-06-21T08:16:00.1827914Z               "line": 300
2026-06-21T08:16:00.1828012Z             }
2026-06-21T08:16:00.1828118Z           ]
2026-06-21T08:16:00.1828228Z         },
2026-06-21T08:16:00.1828332Z         "unit": {
2026-06-21T08:16:00.1828462Z           "complete": false,
2026-06-21T08:16:00.1828571Z           "evidence": []
2026-06-21T08:16:00.1828681Z         }
2026-06-21T08:16:00.1828786Z       }
2026-06-21T08:16:00.1828885Z     },
2026-06-21T08:16:00.1829073Z     {
2026-06-21T08:16:00.1829205Z       "id": "REQ-HAZARD-BIND-CWD-UNSET",
2026-06-21T08:16:00.1831843Z       "title": "A bound endpoint's `info.cwd` is SET at bind so a freshly-created perch appears under its own project tab. ROOT (found, v0.13.0): `info.cwd` is NEVER set on bind — `cmd_bind` (spt-hosted) and `bind_from_seed` (harness-hosted) never thread cwd into `establish_perch`/`rec.cwd`. FIX: `cmd_bind` reads its own `current_dir` (the broker spawned it in `project_cwd`); `bind_from_seed` passes `seed.cwd` (already captured at seed time, currently DISCARDED). DISTINCT from REQ-PICKER-HISTORY-FRESH (v0.12.1) — that unioned cwd-origin into picker MEMBERSHIP but tested merge_origin_project with a PROVIDED origin; it never asserted `info.cwd` is actually set on bind, so a real `endpoint run` perch still had an empty cwd and the union had nothing to union. This is the v0.12.1 P1 'appears under its own project right away' claim that was REFUTED in the changelog — delivered for real here. (v0.13.0)",
2026-06-21T08:16:00.1831988Z       "requiredStages": [
2026-06-21T08:16:00.1832095Z         "impl",
2026-06-21T08:16:00.1832197Z         "unit",
2026-06-21T08:16:00.1832307Z         "int"
2026-06-21T08:16:00.1832528Z       ],
2026-06-21T08:16:00.1832644Z       "stages": {
2026-06-21T08:16:00.1832748Z         "doc": {
2026-06-21T08:16:00.1832982Z           "complete": false,
2026-06-21T08:16:00.1833096Z           "evidence": []
2026-06-21T08:16:00.1833211Z         },
2026-06-21T08:16:00.1833321Z         "impl": {
2026-06-21T08:16:00.1833434Z           "complete": true,
2026-06-21T08:16:00.1833545Z           "evidence": [
2026-06-21T08:16:00.1833635Z             {
2026-06-21T08:16:00.1833788Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.1833894Z               "line": 257
2026-06-21T08:16:00.1834012Z             }
2026-06-21T08:16:00.1834121Z           ]
2026-06-21T08:16:00.1834223Z         },
2026-06-21T08:16:00.1834336Z         "int": {
2026-06-21T08:16:00.1834455Z           "complete": true,
2026-06-21T08:16:00.1834566Z           "evidence": [
2026-06-21T08:16:00.1834665Z             {
2026-06-21T08:16:00.1834841Z               "path": "crates/spt/tests/bind_cwd_project_e2e.rs",
2026-06-21T08:16:00.1834958Z               "line": 93
2026-06-21T08:16:00.1835061Z             }
2026-06-21T08:16:00.1835172Z           ]
2026-06-21T08:16:00.1835277Z         },
2026-06-21T08:16:00.1835386Z         "unit": {
2026-06-21T08:16:00.1835497Z           "complete": true,
2026-06-21T08:16:00.1835606Z           "evidence": [
2026-06-21T08:16:00.1835710Z             {
2026-06-21T08:16:00.1835850Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.1835963Z               "line": 802
2026-06-21T08:16:00.1836069Z             },
2026-06-21T08:16:00.1836173Z             {
2026-06-21T08:16:00.1836311Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.1836432Z               "line": 824
2026-06-21T08:16:00.1836545Z             },
2026-06-21T08:16:00.1836645Z             {
2026-06-21T08:16:00.1836789Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.1836903Z               "line": 855
2026-06-21T08:16:00.1837008Z             }
2026-06-21T08:16:00.1837123Z           ]
2026-06-21T08:16:00.1837231Z         }
2026-06-21T08:16:00.1837333Z       }
2026-06-21T08:16:00.1837424Z     },
2026-06-21T08:16:00.1837532Z     {
2026-06-21T08:16:00.1837679Z       "id": "REQ-HAZARD-BRAIN-RESPAWN-PATH",
2026-06-21T08:16:00.1840221Z       "title": "The broker respawns the brain onto the APPLIED bytes, not the renamed old binary: the candidate-binary default is the canonical exe path captured ONCE at broker start, never a per-spawn std::env::current_exe() — on Linux current_exe (readlink /proc/self/exe) is inode-tracking and follows the `apply` rename (spt -> spt.old-N), so a resident broker would respawn the brain onto OLD bytes while recording `applied` (Windows GetModuleFileName is path-at-start, so Windows was green; ADR-0018 Q3 silently assumed path-string semantics). Backstop: promotion gates on bytes — a trial promotes only if brain.ready exe_hash == the staged artifact hash for this platform, else auto-rollback + loud notif (readiness != new-bytes was the false-success that recorded applied:8 over a v0.4.0 brain on kitsubito, 2026-06-11). KNOWN-HAZARDS 6.11.",
2026-06-21T08:16:00.1840373Z       "requiredStages": [
2026-06-21T08:16:00.1840496Z         "doc",
2026-06-21T08:16:00.1840601Z         "impl",
2026-06-21T08:16:00.1840716Z         "unit",
2026-06-21T08:16:00.1840815Z         "int"
2026-06-21T08:16:00.1840916Z       ],
2026-06-21T08:16:00.1841021Z       "stages": {
2026-06-21T08:16:00.1841130Z         "doc": {
2026-06-21T08:16:00.1841250Z           "complete": true,
2026-06-21T08:16:00.1841364Z           "evidence": [
2026-06-21T08:16:00.1841468Z             {
2026-06-21T08:16:00.1841608Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.1841727Z               "line": 333
2026-06-21T08:16:00.1841831Z             }
2026-06-21T08:16:00.1841941Z           ]
2026-06-21T08:16:00.1842046Z         },
2026-06-21T08:16:00.1842151Z         "impl": {
2026-06-21T08:16:00.1842280Z           "complete": true,
2026-06-21T08:16:00.1842394Z           "evidence": [
2026-06-21T08:16:00.1842613Z             {
2026-06-21T08:16:00.1842771Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1842970Z               "line": 494
2026-06-21T08:16:00.1843084Z             },
2026-06-21T08:16:00.1843185Z             {
2026-06-21T08:16:00.1843341Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1843447Z               "line": 499
2026-06-21T08:16:00.1843556Z             },
2026-06-21T08:16:00.1843661Z             {
2026-06-21T08:16:00.1843820Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1843929Z               "line": 874
2026-06-21T08:16:00.1844033Z             },
2026-06-21T08:16:00.1844139Z             {
2026-06-21T08:16:00.1844290Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1844411Z               "line": 915
2026-06-21T08:16:00.1844520Z             },
2026-06-21T08:16:00.1844624Z             {
2026-06-21T08:16:00.1844778Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1844900Z               "line": 926
2026-06-21T08:16:00.1845006Z             },
2026-06-21T08:16:00.1845140Z             {
2026-06-21T08:16:00.1845291Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.1845396Z               "line": 358
2026-06-21T08:16:00.1845504Z             }
2026-06-21T08:16:00.1845613Z           ]
2026-06-21T08:16:00.1845718Z         },
2026-06-21T08:16:00.1845823Z         "int": {
2026-06-21T08:16:00.1845942Z           "complete": true,
2026-06-21T08:16:00.1846057Z           "evidence": [
2026-06-21T08:16:00.1846166Z             {
2026-06-21T08:16:00.1846328Z               "path": "crates/spt/tests/brain_respawn_rename.rs",
2026-06-21T08:16:00.1846448Z               "line": 30
2026-06-21T08:16:00.1846557Z             }
2026-06-21T08:16:00.1846668Z           ]
2026-06-21T08:16:00.1846772Z         },
2026-06-21T08:16:00.1846886Z         "unit": {
2026-06-21T08:16:00.1847006Z           "complete": true,
2026-06-21T08:16:00.1847115Z           "evidence": [
2026-06-21T08:16:00.1847225Z             {
2026-06-21T08:16:00.1847363Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1847482Z               "line": 1493
2026-06-21T08:16:00.1847588Z             },
2026-06-21T08:16:00.1847697Z             {
2026-06-21T08:16:00.1847849Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1847956Z               "line": 1518
2026-06-21T08:16:00.1848063Z             },
2026-06-21T08:16:00.1848162Z             {
2026-06-21T08:16:00.1848311Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1848413Z               "line": 1535
2026-06-21T08:16:00.1848522Z             },
2026-06-21T08:16:00.1848633Z             {
2026-06-21T08:16:00.1848771Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1848885Z               "line": 1578
2026-06-21T08:16:00.1849052Z             }
2026-06-21T08:16:00.1849161Z           ]
2026-06-21T08:16:00.1849272Z         }
2026-06-21T08:16:00.1849381Z       }
2026-06-21T08:16:00.1849476Z     },
2026-06-21T08:16:00.1849577Z     {
2026-06-21T08:16:00.1849748Z       "id": "REQ-HAZARD-BRAIN-RESTART-LIFECYCLE-REHYDRATE",
2026-06-21T08:16:00.1852348Z       "title": "B4 (deepest): a bare brain restart (broker survives) REHYDRATES the live-agent lifecycle so post-restart endpoints are hosted + attachable. Today resume_sessions (brainproc.rs:186, brain.rs:797-809) re-subscribes to the broker's PTY sessions but ALL BrainLifecycle instances (lifecycle.rs:58-130; the ephemeral brain.rs:254-275) are LOST on restart → a post-restart live endpoint gets no livehost → its Psyche is never (re)hosted and new spawns die / can't attach until a FULL daemon reset (operator: perri's brain kill+restart wedged everything until a full daemon kill). FIX: on brain startup, rebuild a BrainLifecycle per resumed live-capable session — load the manifest from the adapter registry → instantiate → start the pulse — the rehydrate the resume no-op cannot do. Composes with B2 (the reconcile re-hosts from the honest on-disk status after rehydrate). (v0.12.0)",
2026-06-21T08:16:00.1852692Z       "requiredStages": [],
2026-06-21T08:16:00.1852802Z       "stages": {
2026-06-21T08:16:00.1852911Z         "doc": {
2026-06-21T08:16:00.1853031Z           "complete": false,
2026-06-21T08:16:00.1853145Z           "evidence": []
2026-06-21T08:16:00.1853240Z         },
2026-06-21T08:16:00.1853351Z         "impl": {
2026-06-21T08:16:00.1853460Z           "complete": false,
2026-06-21T08:16:00.1853582Z           "evidence": []
2026-06-21T08:16:00.1853682Z         },
2026-06-21T08:16:00.1853793Z         "int": {
2026-06-21T08:16:00.1853920Z           "complete": false,
2026-06-21T08:16:00.1854031Z           "evidence": []
2026-06-21T08:16:00.1854141Z         },
2026-06-21T08:16:00.1854245Z         "unit": {
2026-06-21T08:16:00.1854360Z           "complete": false,
2026-06-21T08:16:00.1854460Z           "evidence": []
2026-06-21T08:16:00.1854569Z         }
2026-06-21T08:16:00.1854709Z       }
2026-06-21T08:16:00.1854798Z     },
2026-06-21T08:16:00.1854898Z     {
2026-06-21T08:16:00.1855052Z       "id": "REQ-HAZARD-BRAIN-RESTART-PSYCHE-DUP",
2026-06-21T08:16:00.1858775Z       "title": "A bare brain restart leaves EXACTLY ONE `{id}-psyche` process per endpoint — no duplicate. On an abrupt brain death stop_host never runs (the LiveSet + owned child handles die with the brain) and Breap's job/group only reaps at DAEMON stop, so the PRIOR brain's Psyche stays ALIVE; the respawned brain's reconcile re-hosts a SECOND Psyche and overwrites the `{id}-psyche` perch pid, leaving the old one untracked + alive = a duplicate that lingers until daemon-stop (the operator's 'brain kill+restart wedged everything'). FIX: at brain start, BEFORE the first reconcile re-hosts, reap any pre-existing `{id}-psyche` orphan — ID-SPECIFICALLY (recycle-safe on the shared box, where sibling agents share the `claude` basename): scoped-kill the recorded pid ONLY IF it is alive AND its exe basename == the adapter's psyche program (normalize_basename) AND its COMMAND LINE contains the full psyche id `<id>-psyche` (baked via {id}); a sibling never carries THIS id, and any unreadable signal FAILS SAFE (decline to reap — a missed dup is bounded by Breap, a wrong-kill is catastrophic). CAVEAT: the cmdline carries `<id>-psyche` only when the adapter's psyche_init.command uses {id} (the norm); a non-{id} adapter safely MISSES the reap (today's behavior, Breap bounds it) — never a wrong-kill. (v0.12.0)",
2026-06-21T08:16:00.1859049Z       "requiredStages": [
2026-06-21T08:16:00.1859164Z         "impl",
2026-06-21T08:16:00.1859269Z         "unit",
2026-06-21T08:16:00.1859378Z         "int"
2026-06-21T08:16:00.1859480Z       ],
2026-06-21T08:16:00.1859589Z       "stages": {
2026-06-21T08:16:00.1859688Z         "doc": {
2026-06-21T08:16:00.1859809Z           "complete": false,
2026-06-21T08:16:00.1859923Z           "evidence": []
2026-06-21T08:16:00.1860022Z         },
2026-06-21T08:16:00.1860138Z         "impl": {
2026-06-21T08:16:00.1860275Z           "complete": true,
2026-06-21T08:16:00.1860395Z           "evidence": [
2026-06-21T08:16:00.1860523Z             {
2026-06-21T08:16:00.1860675Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.1864124Z               "line": 570
2026-06-21T08:16:00.1864257Z             },
2026-06-21T08:16:00.1864373Z             {
2026-06-21T08:16:00.1864529Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.1864654Z               "line": 594
2026-06-21T08:16:00.1864748Z             },
2026-06-21T08:16:00.1864862Z             {
2026-06-21T08:16:00.1865020Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.1865124Z               "line": 620
2026-06-21T08:16:00.1865235Z             },
2026-06-21T08:16:00.1865344Z             {
2026-06-21T08:16:00.1865497Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.1865617Z               "line": 679
2026-06-21T08:16:00.1865726Z             },
2026-06-21T08:16:00.1866006Z             {
2026-06-21T08:16:00.1866155Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T08:16:00.1866368Z               "line": 89
2026-06-21T08:16:00.1866478Z             },
2026-06-21T08:16:00.1866587Z             {
2026-06-21T08:16:00.1866733Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T08:16:00.1866843Z               "line": 134
2026-06-21T08:16:00.1866949Z             }
2026-06-21T08:16:00.1867052Z           ]
2026-06-21T08:16:00.1867157Z         },
2026-06-21T08:16:00.1867263Z         "int": {
2026-06-21T08:16:00.1867386Z           "complete": true,
2026-06-21T08:16:00.1867492Z           "evidence": [
2026-06-21T08:16:00.1867606Z             {
2026-06-21T08:16:00.1867783Z               "path": "crates/spt/tests/brain_restart_psyche_dup_e2e.rs",
2026-06-21T08:16:00.1867897Z               "line": 20
2026-06-21T08:16:00.1868001Z             }
2026-06-21T08:16:00.1868098Z           ]
2026-06-21T08:16:00.1868197Z         },
2026-06-21T08:16:00.1868311Z         "unit": {
2026-06-21T08:16:00.1868432Z           "complete": true,
2026-06-21T08:16:00.1868540Z           "evidence": [
2026-06-21T08:16:00.1868645Z             {
2026-06-21T08:16:00.1868799Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.1868907Z               "line": 1047
2026-06-21T08:16:00.1869095Z             },
2026-06-21T08:16:00.1869198Z             {
2026-06-21T08:16:00.1869345Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T08:16:00.1869459Z               "line": 445
2026-06-21T08:16:00.1869557Z             }
2026-06-21T08:16:00.1869662Z           ]
2026-06-21T08:16:00.1869758Z         }
2026-06-21T08:16:00.1869862Z       }
2026-06-21T08:16:00.1869962Z     },
2026-06-21T08:16:00.1870068Z     {
2026-06-21T08:16:00.1870224Z       "id": "REQ-HAZARD-BROKER-PROCESS-ISOLATION",
2026-06-21T08:16:00.1872897Z       "title": "Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).",
2026-06-21T08:16:00.1873040Z       "requiredStages": [
2026-06-21T08:16:00.1873144Z         "doc",
2026-06-21T08:16:00.1873260Z         "impl",
2026-06-21T08:16:00.1873364Z         "unit",
2026-06-21T08:16:00.1873473Z         "int"
2026-06-21T08:16:00.1873575Z       ],
2026-06-21T08:16:00.1873679Z       "stages": {
2026-06-21T08:16:00.1873807Z         "doc": {
2026-06-21T08:16:00.1873922Z           "complete": true,
2026-06-21T08:16:00.1874060Z           "evidence": [
2026-06-21T08:16:00.1874171Z             {
2026-06-21T08:16:00.1874307Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.1874422Z               "line": 302
2026-06-21T08:16:00.1874534Z             }
2026-06-21T08:16:00.1874636Z           ]
2026-06-21T08:16:00.1874735Z         },
2026-06-21T08:16:00.1874842Z         "impl": {
2026-06-21T08:16:00.1874956Z           "complete": true,
2026-06-21T08:16:00.1875060Z           "evidence": [
2026-06-21T08:16:00.1875156Z             {
2026-06-21T08:16:00.1875308Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T08:16:00.1875418Z               "line": 108
2026-06-21T08:16:00.1875524Z             },
2026-06-21T08:16:00.1875633Z             {
2026-06-21T08:16:00.1875786Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.1875900Z               "line": 843
2026-06-21T08:16:00.1876115Z             },
2026-06-21T08:16:00.1876214Z             {
2026-06-21T08:16:00.1876357Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.1876571Z               "line": 1043
2026-06-21T08:16:00.1876677Z             },
2026-06-21T08:16:00.1876783Z             {
2026-06-21T08:16:00.1876943Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1877052Z               "line": 23
2026-06-21T08:16:00.1877166Z             },
2026-06-21T08:16:00.1877269Z             {
2026-06-21T08:16:00.1877422Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1877537Z               "line": 113
2026-06-21T08:16:00.1877631Z             },
2026-06-21T08:16:00.1877742Z             {
2026-06-21T08:16:00.1877894Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1878004Z               "line": 158
2026-06-21T08:16:00.1878109Z             },
2026-06-21T08:16:00.1878213Z             {
2026-06-21T08:16:00.1878376Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1878486Z               "line": 218
2026-06-21T08:16:00.1878600Z             },
2026-06-21T08:16:00.1878705Z             {
2026-06-21T08:16:00.1878848Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1879020Z               "line": 261
2026-06-21T08:16:00.1879133Z             },
2026-06-21T08:16:00.1879244Z             {
2026-06-21T08:16:00.1879383Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1879492Z               "line": 275
2026-06-21T08:16:00.1879588Z             },
2026-06-21T08:16:00.1879693Z             {
2026-06-21T08:16:00.1879839Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1879948Z               "line": 320
2026-06-21T08:16:00.1880061Z             },
2026-06-21T08:16:00.1880160Z             {
2026-06-21T08:16:00.1880309Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1880427Z               "line": 347
2026-06-21T08:16:00.1880536Z             },
2026-06-21T08:16:00.1880638Z             {
2026-06-21T08:16:00.1880789Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1880915Z               "line": 359
2026-06-21T08:16:00.1881019Z             },
2026-06-21T08:16:00.1881128Z             {
2026-06-21T08:16:00.1881272Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1881382Z               "line": 373
2026-06-21T08:16:00.1881490Z             },
2026-06-21T08:16:00.1881592Z             {
2026-06-21T08:16:00.1881738Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1881849Z               "line": 400
2026-06-21T08:16:00.1881954Z             },
2026-06-21T08:16:00.1882053Z             {
2026-06-21T08:16:00.1882203Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1882320Z               "line": 643
2026-06-21T08:16:00.1882419Z             },
2026-06-21T08:16:00.1882529Z             {
2026-06-21T08:16:00.1882675Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1882804Z               "line": 989
2026-06-21T08:16:00.1882904Z             },
2026-06-21T08:16:00.1883013Z             {
2026-06-21T08:16:00.1883162Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.1883271Z               "line": 295
2026-06-21T08:16:00.1883380Z             },
2026-06-21T08:16:00.1883477Z             {
2026-06-21T08:16:00.1883624Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.1883733Z               "line": 1191
2026-06-21T08:16:00.1883839Z             },
2026-06-21T08:16:00.1883948Z             {
2026-06-21T08:16:00.1884087Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.1884205Z               "line": 1263
2026-06-21T08:16:00.1884310Z             },
2026-06-21T08:16:00.1884416Z             {
2026-06-21T08:16:00.1884553Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.1884765Z               "line": 1275
2026-06-21T08:16:00.1884877Z             },
2026-06-21T08:16:00.1885070Z             {
2026-06-21T08:16:00.1885210Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.1885319Z               "line": 1976
2026-06-21T08:16:00.1885435Z             },
2026-06-21T08:16:00.1885535Z             {
2026-06-21T08:16:00.1885668Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.1885779Z               "line": 188
2026-06-21T08:16:00.1885878Z             },
2026-06-21T08:16:00.1885983Z             {
2026-06-21T08:16:00.1886112Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.1886231Z               "line": 265
2026-06-21T08:16:00.1886336Z             },
2026-06-21T08:16:00.1886446Z             {
2026-06-21T08:16:00.1886583Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.1886680Z               "line": 276
2026-06-21T08:16:00.1886779Z             },
2026-06-21T08:16:00.1886889Z             {
2026-06-21T08:16:00.1887037Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.1887146Z               "line": 329
2026-06-21T08:16:00.1887256Z             },
2026-06-21T08:16:00.1887366Z             {
2026-06-21T08:16:00.1887517Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T08:16:00.1887622Z               "line": 56
2026-06-21T08:16:00.1887717Z             },
2026-06-21T08:16:00.1887815Z             {
2026-06-21T08:16:00.1887968Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T08:16:00.1888074Z               "line": 188
2026-06-21T08:16:00.1888182Z             },
2026-06-21T08:16:00.1888278Z             {
2026-06-21T08:16:00.1888431Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-21T08:16:00.1888535Z               "line": 82
2026-06-21T08:16:00.1888641Z             },
2026-06-21T08:16:00.1888750Z             {
2026-06-21T08:16:00.1888889Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.1889084Z               "line": 308
2026-06-21T08:16:00.1889184Z             },
2026-06-21T08:16:00.1889303Z             {
2026-06-21T08:16:00.1889436Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.1889543Z               "line": 424
2026-06-21T08:16:00.1889651Z             },
2026-06-21T08:16:00.1889747Z             {
2026-06-21T08:16:00.1889881Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.1889994Z               "line": 2006
2026-06-21T08:16:00.1890094Z             }
2026-06-21T08:16:00.1890187Z           ]
2026-06-21T08:16:00.1890290Z         },
2026-06-21T08:16:00.1890399Z         "int": {
2026-06-21T08:16:00.1890509Z           "complete": true,
2026-06-21T08:16:00.1890626Z           "evidence": [
2026-06-21T08:16:00.1890720Z             {
2026-06-21T08:16:00.1890864Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-21T08:16:00.1890974Z               "line": 57
2026-06-21T08:16:00.1891078Z             },
2026-06-21T08:16:00.1891194Z             {
2026-06-21T08:16:00.1891326Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-21T08:16:00.1891436Z               "line": 41
2026-06-21T08:16:00.1891527Z             }
2026-06-21T08:16:00.1891636Z           ]
2026-06-21T08:16:00.1891741Z         },
2026-06-21T08:16:00.1891852Z         "unit": {
2026-06-21T08:16:00.1891970Z           "complete": true,
2026-06-21T08:16:00.1892075Z           "evidence": [
2026-06-21T08:16:00.1892185Z             {
2026-06-21T08:16:00.1892337Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T08:16:00.1892443Z               "line": 532
2026-06-21T08:16:00.1892542Z             },
2026-06-21T08:16:00.1892642Z             {
2026-06-21T08:16:00.1892796Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T08:16:00.1892904Z               "line": 757
2026-06-21T08:16:00.1893007Z             },
2026-06-21T08:16:00.1893108Z             {
2026-06-21T08:16:00.1893259Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1893479Z               "line": 1067
2026-06-21T08:16:00.1893582Z             },
2026-06-21T08:16:00.1893784Z             {
2026-06-21T08:16:00.1893931Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1894051Z               "line": 1101
2026-06-21T08:16:00.1894156Z             },
2026-06-21T08:16:00.1894250Z             {
2026-06-21T08:16:00.1894390Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1894494Z               "line": 1143
2026-06-21T08:16:00.1894598Z             },
2026-06-21T08:16:00.1894705Z             {
2026-06-21T08:16:00.1894851Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1894957Z               "line": 1215
2026-06-21T08:16:00.1895062Z             },
2026-06-21T08:16:00.1895166Z             {
2026-06-21T08:16:00.1895320Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1895418Z               "line": 1228
2026-06-21T08:16:00.1895528Z             },
2026-06-21T08:16:00.1895630Z             {
2026-06-21T08:16:00.1895766Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1895879Z               "line": 1251
2026-06-21T08:16:00.1895986Z             },
2026-06-21T08:16:00.1896085Z             {
2026-06-21T08:16:00.1896238Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1896339Z               "line": 1277
2026-06-21T08:16:00.1896447Z             },
2026-06-21T08:16:00.1896553Z             {
2026-06-21T08:16:00.1896706Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1896810Z               "line": 1291
2026-06-21T08:16:00.1896906Z             },
2026-06-21T08:16:00.1897006Z             {
2026-06-21T08:16:00.1897148Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1897264Z               "line": 1315
2026-06-21T08:16:00.1897363Z             },
2026-06-21T08:16:00.1897463Z             {
2026-06-21T08:16:00.1897607Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1897716Z               "line": 1447
2026-06-21T08:16:00.1897826Z             },
2026-06-21T08:16:00.1897926Z             {
2026-06-21T08:16:00.1898072Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1898182Z               "line": 1623
2026-06-21T08:16:00.1898286Z             },
2026-06-21T08:16:00.1898389Z             {
2026-06-21T08:16:00.1898528Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1898642Z               "line": 1678
2026-06-21T08:16:00.1898742Z             },
2026-06-21T08:16:00.1898848Z             {
2026-06-21T08:16:00.1899071Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1899182Z               "line": 1724
2026-06-21T08:16:00.1899282Z             },
2026-06-21T08:16:00.1899385Z             {
2026-06-21T08:16:00.1899534Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1899653Z               "line": 1769
2026-06-21T08:16:00.1899749Z             },
2026-06-21T08:16:00.1899854Z             {
2026-06-21T08:16:00.1900011Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1900122Z               "line": 1813
2026-06-21T08:16:00.1900221Z             },
2026-06-21T08:16:00.1900321Z             {
2026-06-21T08:16:00.1900455Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.1900569Z               "line": 1855
2026-06-21T08:16:00.1900679Z             },
2026-06-21T08:16:00.1900784Z             {
2026-06-21T08:16:00.1900921Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.1901025Z               "line": 2329
2026-06-21T08:16:00.1901130Z             },
2026-06-21T08:16:00.1901233Z             {
2026-06-21T08:16:00.1901386Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T08:16:00.1901496Z               "line": 217
2026-06-21T08:16:00.1901595Z             },
2026-06-21T08:16:00.1901810Z             {
2026-06-21T08:16:00.1901948Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T08:16:00.1902154Z               "line": 233
2026-06-21T08:16:00.1902253Z             },
2026-06-21T08:16:00.1902359Z             {
2026-06-21T08:16:00.1902516Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T08:16:00.1902621Z               "line": 254
2026-06-21T08:16:00.1902731Z             },
2026-06-21T08:16:00.1902835Z             {
2026-06-21T08:16:00.1902989Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T08:16:00.1903098Z               "line": 265
2026-06-21T08:16:00.1903202Z             },
2026-06-21T08:16:00.1903299Z             {
2026-06-21T08:16:00.1903445Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T08:16:00.1903549Z               "line": 278
2026-06-21T08:16:00.1903654Z             },
2026-06-21T08:16:00.1903758Z             {
2026-06-21T08:16:00.1903894Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T08:16:00.1904015Z               "line": 289
2026-06-21T08:16:00.1904124Z             },
2026-06-21T08:16:00.1904224Z             {
2026-06-21T08:16:00.1904372Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T08:16:00.1904481Z               "line": 301
2026-06-21T08:16:00.1904592Z             },
2026-06-21T08:16:00.1904687Z             {
2026-06-21T08:16:00.1904829Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T08:16:00.1904945Z               "line": 312
2026-06-21T08:16:00.1905049Z             },
2026-06-21T08:16:00.1905149Z             {
2026-06-21T08:16:00.1905293Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T08:16:00.1905393Z               "line": 323
2026-06-21T08:16:00.1905497Z             },
2026-06-21T08:16:00.1905617Z             {
2026-06-21T08:16:00.1905769Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T08:16:00.1905875Z               "line": 332
2026-06-21T08:16:00.1905988Z             },
2026-06-21T08:16:00.1906093Z             {
2026-06-21T08:16:00.1906243Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T08:16:00.1906364Z               "line": 342
2026-06-21T08:16:00.1906469Z             },
2026-06-21T08:16:00.1906574Z             {
2026-06-21T08:16:00.1906712Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T08:16:00.1906822Z               "line": 358
2026-06-21T08:16:00.1906927Z             },
2026-06-21T08:16:00.1907041Z             {
2026-06-21T08:16:00.1907190Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.1907299Z               "line": 758
2026-06-21T08:16:00.1907403Z             },
2026-06-21T08:16:00.1907514Z             {
2026-06-21T08:16:00.1907670Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.1907776Z               "line": 794
2026-06-21T08:16:00.1907880Z             },
2026-06-21T08:16:00.1907985Z             {
2026-06-21T08:16:00.1908130Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.1908247Z               "line": 966
2026-06-21T08:16:00.1908352Z             },
2026-06-21T08:16:00.1908464Z             {
2026-06-21T08:16:00.1908609Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-21T08:16:00.1908732Z               "line": 145
2026-06-21T08:16:00.1908841Z             },
2026-06-21T08:16:00.1909016Z             {
2026-06-21T08:16:00.1909165Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-21T08:16:00.1909269Z               "line": 224
2026-06-21T08:16:00.1909374Z             },
2026-06-21T08:16:00.1909480Z             {
2026-06-21T08:16:00.1909617Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-21T08:16:00.1909737Z               "line": 293
2026-06-21T08:16:00.1909842Z             },
2026-06-21T08:16:00.1909946Z             {
2026-06-21T08:16:00.1910090Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-21T08:16:00.1910213Z               "line": 17
2026-06-21T08:16:00.1910419Z             },
2026-06-21T08:16:00.1910528Z             {
2026-06-21T08:16:00.1910673Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-21T08:16:00.1910871Z               "line": 104
2026-06-21T08:16:00.1910982Z             }
2026-06-21T08:16:00.1911077Z           ]
2026-06-21T08:16:00.1911182Z         }
2026-06-21T08:16:00.1911282Z       }
2026-06-21T08:16:00.1911387Z     },
2026-06-21T08:16:00.1911490Z     {
2026-06-21T08:16:00.1911634Z       "id": "REQ-HAZARD-BROKER-QUIC-DEADLINE",
2026-06-21T08:16:00.1914684Z       "title": "The broker bounds every brain-waiting QUIC op (dial / open_stream / send_stream) so a black-holed or dead peer fails PROMPTLY with an ORDINARY error the broker REPLIES, never an unbounded await. The bound (< the brain's 30s PUMP_PEER_IO_TIMEOUT so the BROKER fires first) surfaces to the pump as a normal broker error reply → peer_outcome's non-TimedOut arm → drop conn + redial next tick, the round CONTINUES and the heartbeat keeps advancing — it must NEVER manifest as the brain's own read-deadline (the A-half poison → supervised-restart path REQ-HAZARD-PUMP-IPC-DEADLINE guards). Exactly-once is preserved: a timed-out journaled op fails INSIDE its apply_once closure so no phantom conn_id/stream_id is recorded and a fresh tick re-dials cleanly. The happy path is unchanged (a live peer completes with zero added latency; the bound only bites a non-responsive peer). This is the ROOT-cause cure for the 2.2h hfenduleam pump wedge — a dead roster peer whose QUIC path the broker awaited unbounded — recurring on hfenduleam 2026-06-16.",
2026-06-21T08:16:00.1914847Z       "requiredStages": [
2026-06-21T08:16:00.1914957Z         "doc",
2026-06-21T08:16:00.1915060Z         "impl",
2026-06-21T08:16:00.1915162Z         "unit",
2026-06-21T08:16:00.1915266Z         "int"
2026-06-21T08:16:00.1915365Z       ],
2026-06-21T08:16:00.1915467Z       "stages": {
2026-06-21T08:16:00.1915571Z         "doc": {
2026-06-21T08:16:00.1915680Z           "complete": true,
2026-06-21T08:16:00.1915796Z           "evidence": [
2026-06-21T08:16:00.1915939Z             {
2026-06-21T08:16:00.1916067Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.1916205Z               "line": 388
2026-06-21T08:16:00.1916305Z             }
2026-06-21T08:16:00.1916407Z           ]
2026-06-21T08:16:00.1916506Z         },
2026-06-21T08:16:00.1916620Z         "impl": {
2026-06-21T08:16:00.1916741Z           "complete": true,
2026-06-21T08:16:00.1916854Z           "evidence": [
2026-06-21T08:16:00.1916953Z             {
2026-06-21T08:16:00.1917101Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.1917220Z               "line": 823
2026-06-21T08:16:00.1917315Z             },
2026-06-21T08:16:00.1917421Z             {
2026-06-21T08:16:00.1917572Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.1917688Z               "line": 846
2026-06-21T08:16:00.1917792Z             }
2026-06-21T08:16:00.1917887Z           ]
2026-06-21T08:16:00.1917992Z         },
2026-06-21T08:16:00.1918098Z         "int": {
2026-06-21T08:16:00.1918225Z           "complete": true,
2026-06-21T08:16:00.1918341Z           "evidence": [
2026-06-21T08:16:00.1918445Z             {
2026-06-21T08:16:00.1918607Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-21T08:16:00.1918709Z               "line": 228
2026-06-21T08:16:00.1918817Z             },
2026-06-21T08:16:00.1918918Z             {
2026-06-21T08:16:00.1919131Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-21T08:16:00.1919249Z               "line": 468
2026-06-21T08:16:00.1919355Z             }
2026-06-21T08:16:00.1919462Z           ]
2026-06-21T08:16:00.1919566Z         },
2026-06-21T08:16:00.1919673Z         "unit": {
2026-06-21T08:16:00.1919786Z           "complete": true,
2026-06-21T08:16:00.1919901Z           "evidence": [
2026-06-21T08:16:00.1919997Z             {
2026-06-21T08:16:00.1920144Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.1920259Z               "line": 1583
2026-06-21T08:16:00.1920473Z             }
2026-06-21T08:16:00.1920579Z           ]
2026-06-21T08:16:00.1920683Z         }
2026-06-21T08:16:00.1920879Z       }
2026-06-21T08:16:00.1920983Z     },
2026-06-21T08:16:00.1921083Z     {
2026-06-21T08:16:00.1921228Z       "id": "REQ-HAZARD-BROKER-SEED-WIRE-SKEW",
2026-06-21T08:16:00.1924817Z       "title": "A daemon-state wire-format change (e.g. the v0.9.0 adapter-agnostic Seed) does NOT take effect until a DELIBERATE full broker restart: the broker serves the seed-control channel and is RESIDENT across a brain-only self-update (ADR-0004 no-terminate-during-update forbids auto-killing it), so a NEW-version CLI talking to a still-resident OLD broker fails the seed handshake — the old broker cannot deserialize the new Seed (its formerly-required `adapter` field is gone) and drops the conn without an ack, which surfaces to the CLI as a raw UnexpectedEof 'failed to fill whole buffer'. spt-core must (a) surface an ACTIONABLE diagnostic on that seed-ack EOF (name the stale-broker cause + the `spt daemon stop` fix — the broker restarts on the next api call), never the cryptic io error; and (b) document the operational rule (a deliberate broker restart is required on any daemon-state wire change — NOT automatic) + the FORWARD discipline (daemon-state/Seed schema changes stay additive + serde-default so a resident OLD broker tolerates a NEW CLI across a brain-only update; note this would NOT have rescued 0.9.0 itself, since the old broker's `adapter` was a required field). perri PREP-4 FINDING 1 (v0.9.0 CLI vs stale 0.8.x broker).",
2026-06-21T08:16:00.1924986Z       "requiredStages": [
2026-06-21T08:16:00.1925087Z         "doc",
2026-06-21T08:16:00.1925197Z         "impl",
2026-06-21T08:16:00.1925301Z         "unit"
2026-06-21T08:16:00.1925402Z       ],
2026-06-21T08:16:00.1925512Z       "stages": {
2026-06-21T08:16:00.1925630Z         "doc": {
2026-06-21T08:16:00.1925736Z           "complete": true,
2026-06-21T08:16:00.1925855Z           "evidence": [
2026-06-21T08:16:00.1925988Z             {
2026-06-21T08:16:00.1926127Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.1926264Z               "line": 395
2026-06-21T08:16:00.1926366Z             }
2026-06-21T08:16:00.1926474Z           ]
2026-06-21T08:16:00.1926579Z         },
2026-06-21T08:16:00.1926680Z         "impl": {
2026-06-21T08:16:00.1926803Z           "complete": true,
2026-06-21T08:16:00.1926903Z           "evidence": [
2026-06-21T08:16:00.1927010Z             {
2026-06-21T08:16:00.1927156Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.1927282Z               "line": 75
2026-06-21T08:16:00.1927381Z             }
2026-06-21T08:16:00.1927489Z           ]
2026-06-21T08:16:00.1927584Z         },
2026-06-21T08:16:00.1927686Z         "int": {
2026-06-21T08:16:00.1927813Z           "complete": false,
2026-06-21T08:16:00.1927923Z           "evidence": []
2026-06-21T08:16:00.1928028Z         },
2026-06-21T08:16:00.1928137Z         "unit": {
2026-06-21T08:16:00.1928267Z           "complete": true,
2026-06-21T08:16:00.1928386Z           "evidence": [
2026-06-21T08:16:00.1928490Z             {
2026-06-21T08:16:00.1928639Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.1928753Z               "line": 632
2026-06-21T08:16:00.1928867Z             }
2026-06-21T08:16:00.1929029Z           ]
2026-06-21T08:16:00.1929139Z         }
2026-06-21T08:16:00.1929240Z       }
2026-06-21T08:16:00.1929339Z     },
2026-06-21T08:16:00.1929448Z     {
2026-06-21T08:16:00.1929584Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-21T08:16:00.1929791Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-21T08:16:00.1929901Z       "requiredStages": [
2026-06-21T08:16:00.1930004Z         "impl",
2026-06-21T08:16:00.1930108Z         "unit"
2026-06-21T08:16:00.1930213Z       ],
2026-06-21T08:16:00.1930314Z       "stages": {
2026-06-21T08:16:00.1930423Z         "doc": {
2026-06-21T08:16:00.1930543Z           "complete": false,
2026-06-21T08:16:00.1930766Z           "evidence": []
2026-06-21T08:16:00.1930877Z         },
2026-06-21T08:16:00.1930986Z         "impl": {
2026-06-21T08:16:00.1931210Z           "complete": true,
2026-06-21T08:16:00.1931333Z           "evidence": [
2026-06-21T08:16:00.1931434Z             {
2026-06-21T08:16:00.1931577Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.1931691Z               "line": 172
2026-06-21T08:16:00.1931807Z             },
2026-06-21T08:16:00.1931920Z             {
2026-06-21T08:16:00.1932059Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T08:16:00.1932178Z               "line": 18
2026-06-21T08:16:00.1932278Z             },
2026-06-21T08:16:00.1932379Z             {
2026-06-21T08:16:00.1932516Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T08:16:00.1932620Z               "line": 100
2026-06-21T08:16:00.1932734Z             }
2026-06-21T08:16:00.1932838Z           ]
2026-06-21T08:16:00.1932947Z         },
2026-06-21T08:16:00.1933051Z         "int": {
2026-06-21T08:16:00.1933186Z           "complete": false,
2026-06-21T08:16:00.1933299Z           "evidence": []
2026-06-21T08:16:00.1933410Z         },
2026-06-21T08:16:00.1933519Z         "unit": {
2026-06-21T08:16:00.1933633Z           "complete": true,
2026-06-21T08:16:00.1933753Z           "evidence": [
2026-06-21T08:16:00.1933858Z             {
2026-06-21T08:16:00.1934010Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.1934115Z               "line": 857
2026-06-21T08:16:00.1934215Z             },
2026-06-21T08:16:00.1934321Z             {
2026-06-21T08:16:00.1934453Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T08:16:00.1934573Z               "line": 161
2026-06-21T08:16:00.1934674Z             },
2026-06-21T08:16:00.1934773Z             {
2026-06-21T08:16:00.1934906Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T08:16:00.1935022Z               "line": 233
2026-06-21T08:16:00.1935135Z             }
2026-06-21T08:16:00.1935234Z           ]
2026-06-21T08:16:00.1935340Z         }
2026-06-21T08:16:00.1935433Z       }
2026-06-21T08:16:00.1935541Z     },
2026-06-21T08:16:00.1935652Z     {
2026-06-21T08:16:00.1935800Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-21T08:16:00.1936258Z       "title": "Console-subsystem children of the console-less daemon spawn with CREATE_NO_WINDOW, or each spawn flashes a visible blank window on the user's desktop (5.8)",
2026-06-21T08:16:00.1936368Z       "requiredStages": [
2026-06-21T08:16:00.1936481Z         "impl",
2026-06-21T08:16:00.1936588Z         "unit"
2026-06-21T08:16:00.1936701Z       ],
2026-06-21T08:16:00.1936805Z       "stages": {
2026-06-21T08:16:00.1936907Z         "doc": {
2026-06-21T08:16:00.1937030Z           "complete": true,
2026-06-21T08:16:00.1937134Z           "evidence": [
2026-06-21T08:16:00.1937250Z             {
2026-06-21T08:16:00.1937387Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.1937503Z               "line": 220
2026-06-21T08:16:00.1937608Z             }
2026-06-21T08:16:00.1937721Z           ]
2026-06-21T08:16:00.1937832Z         },
2026-06-21T08:16:00.1937941Z         "impl": {
2026-06-21T08:16:00.1938068Z           "complete": true,
2026-06-21T08:16:00.1938163Z           "evidence": [
2026-06-21T08:16:00.1938274Z             {
2026-06-21T08:16:00.1938425Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.1938536Z               "line": 316
2026-06-21T08:16:00.1938651Z             },
2026-06-21T08:16:00.1938754Z             {
2026-06-21T08:16:00.1938908Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.1939079Z               "line": 356
2026-06-21T08:16:00.1939190Z             },
2026-06-21T08:16:00.1939294Z             {
2026-06-21T08:16:00.1939447Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.1939557Z               "line": 578
2026-06-21T08:16:00.1939661Z             },
2026-06-21T08:16:00.1939777Z             {
2026-06-21T08:16:00.1939913Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-21T08:16:00.1940134Z               "line": 77
2026-06-21T08:16:00.1940323Z             }
2026-06-21T08:16:00.1940428Z           ]
2026-06-21T08:16:00.1940536Z         },
2026-06-21T08:16:00.1940640Z         "int": {
2026-06-21T08:16:00.1940759Z           "complete": false,
2026-06-21T08:16:00.1940870Z           "evidence": []
2026-06-21T08:16:00.1940978Z         },
2026-06-21T08:16:00.1941088Z         "unit": {
2026-06-21T08:16:00.1941203Z           "complete": true,
2026-06-21T08:16:00.1941321Z           "evidence": [
2026-06-21T08:16:00.1941418Z             {
2026-06-21T08:16:00.1941574Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.1941685Z               "line": 747
2026-06-21T08:16:00.1941785Z             },
2026-06-21T08:16:00.1941898Z             {
2026-06-21T08:16:00.1942042Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.1942166Z               "line": 785
2026-06-21T08:16:00.1942275Z             },
2026-06-21T08:16:00.1942381Z             {
2026-06-21T08:16:00.1942528Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-21T08:16:00.1942648Z               "line": 166
2026-06-21T08:16:00.1942748Z             }
2026-06-21T08:16:00.1942852Z           ]
2026-06-21T08:16:00.1942963Z         }
2026-06-21T08:16:00.1943068Z       }
2026-06-21T08:16:00.1943171Z     },
2026-06-21T08:16:00.1943271Z     {
2026-06-21T08:16:00.1943422Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-21T08:16:00.1944008Z       "title": "A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)",
2026-06-21T08:16:00.1944117Z       "requiredStages": [
2026-06-21T08:16:00.1944222Z         "impl",
2026-06-21T08:16:00.1944327Z         "unit"
2026-06-21T08:16:00.1944427Z       ],
2026-06-21T08:16:00.1944532Z       "stages": {
2026-06-21T08:16:00.1944638Z         "doc": {
2026-06-21T08:16:00.1944765Z           "complete": false,
2026-06-21T08:16:00.1944876Z           "evidence": []
2026-06-21T08:16:00.1944990Z         },
2026-06-21T08:16:00.1945094Z         "impl": {
2026-06-21T08:16:00.1945220Z           "complete": true,
2026-06-21T08:16:00.1945328Z           "evidence": [
2026-06-21T08:16:00.1945433Z             {
2026-06-21T08:16:00.1945587Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-21T08:16:00.1945695Z               "line": 22
2026-06-21T08:16:00.1945804Z             },
2026-06-21T08:16:00.1945905Z             {
2026-06-21T08:16:00.1946045Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T08:16:00.1946150Z               "line": 487
2026-06-21T08:16:00.1946251Z             },
2026-06-21T08:16:00.1946360Z             {
2026-06-21T08:16:00.1946513Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-21T08:16:00.1946618Z               "line": 17
2026-06-21T08:16:00.1946727Z             },
2026-06-21T08:16:00.1946908Z             {
2026-06-21T08:16:00.1947069Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-21T08:16:00.1947195Z               "line": 147
2026-06-21T08:16:00.1947304Z             },
2026-06-21T08:16:00.1947404Z             {
2026-06-21T08:16:00.1947562Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.1947666Z               "line": 226
2026-06-21T08:16:00.1947767Z             },
2026-06-21T08:16:00.1947871Z             {
2026-06-21T08:16:00.1948024Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.1948139Z               "line": 251
2026-06-21T08:16:00.1948243Z             },
2026-06-21T08:16:00.1948348Z             {
2026-06-21T08:16:00.1948492Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.1948605Z               "line": 277
2026-06-21T08:16:00.1948719Z             },
2026-06-21T08:16:00.1948815Z             {
2026-06-21T08:16:00.1949043Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-21T08:16:00.1949263Z               "line": 124
2026-06-21T08:16:00.1949368Z             },
2026-06-21T08:16:00.1949568Z             {
2026-06-21T08:16:00.1949726Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-21T08:16:00.1949839Z               "line": 224
2026-06-21T08:16:00.1949944Z             }
2026-06-21T08:16:00.1950050Z           ]
2026-06-21T08:16:00.1950154Z         },
2026-06-21T08:16:00.1950254Z         "int": {
2026-06-21T08:16:00.1950370Z           "complete": false,
2026-06-21T08:16:00.1950483Z           "evidence": []
2026-06-21T08:16:00.1950588Z         },
2026-06-21T08:16:00.1950694Z         "unit": {
2026-06-21T08:16:00.1950812Z           "complete": true,
2026-06-21T08:16:00.1950916Z           "evidence": [
2026-06-21T08:16:00.1951035Z             {
2026-06-21T08:16:00.1951185Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-21T08:16:00.1951291Z               "line": 63
2026-06-21T08:16:00.1951406Z             },
2026-06-21T08:16:00.1954292Z             {
2026-06-21T08:16:00.1954482Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-21T08:16:00.1954601Z               "line": 73
2026-06-21T08:16:00.1954705Z             },
2026-06-21T08:16:00.1954807Z             {
2026-06-21T08:16:00.1954969Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-21T08:16:00.1955078Z               "line": 85
2026-06-21T08:16:00.1955189Z             },
2026-06-21T08:16:00.1955298Z             {
2026-06-21T08:16:00.1955436Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-21T08:16:00.1955550Z               "line": 346
2026-06-21T08:16:00.1955655Z             },
2026-06-21T08:16:00.1955756Z             {
2026-06-21T08:16:00.1955912Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-21T08:16:00.1956017Z               "line": 281
2026-06-21T08:16:00.1956119Z             },
2026-06-21T08:16:00.1956227Z             {
2026-06-21T08:16:00.1956378Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-21T08:16:00.1956502Z               "line": 322
2026-06-21T08:16:00.1956615Z             },
2026-06-21T08:16:00.1956720Z             {
2026-06-21T08:16:00.1956850Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-21T08:16:00.1956967Z               "line": 360
2026-06-21T08:16:00.1957068Z             },
2026-06-21T08:16:00.1957183Z             {
2026-06-21T08:16:00.1957339Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.1957445Z               "line": 688
2026-06-21T08:16:00.1957559Z             },
2026-06-21T08:16:00.1957659Z             {
2026-06-21T08:16:00.1957807Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-21T08:16:00.1957921Z               "line": 397
2026-06-21T08:16:00.1958032Z             },
2026-06-21T08:16:00.1958131Z             {
2026-06-21T08:16:00.1958283Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-21T08:16:00.1958390Z               "line": 440
2026-06-21T08:16:00.1958493Z             }
2026-06-21T08:16:00.1958608Z           ]
2026-06-21T08:16:00.1958709Z         }
2026-06-21T08:16:00.1958817Z       }
2026-06-21T08:16:00.1958923Z     },
2026-06-21T08:16:00.1959117Z     {
2026-06-21T08:16:00.1959245Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-21T08:16:00.1959484Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-21T08:16:00.1959608Z       "requiredStages": [
2026-06-21T08:16:00.1959709Z         "impl",
2026-06-21T08:16:00.1959813Z         "unit"
2026-06-21T08:16:00.1959923Z       ],
2026-06-21T08:16:00.1960028Z       "stages": {
2026-06-21T08:16:00.1960132Z         "doc": {
2026-06-21T08:16:00.1960252Z           "complete": false,
2026-06-21T08:16:00.1960376Z           "evidence": []
2026-06-21T08:16:00.1960476Z         },
2026-06-21T08:16:00.1960587Z         "impl": {
2026-06-21T08:16:00.1960695Z           "complete": true,
2026-06-21T08:16:00.1960800Z           "evidence": [
2026-06-21T08:16:00.1960911Z             {
2026-06-21T08:16:00.1961196Z               "path": "crates/spt-term/src/reader.rs",
2026-06-21T08:16:00.1961321Z               "line": 169
2026-06-21T08:16:00.1961504Z             }
2026-06-21T08:16:00.1961614Z           ]
2026-06-21T08:16:00.1961718Z         },
2026-06-21T08:16:00.1961826Z         "int": {
2026-06-21T08:16:00.1961947Z           "complete": true,
2026-06-21T08:16:00.1962046Z           "evidence": [
2026-06-21T08:16:00.1962155Z             {
2026-06-21T08:16:00.1962294Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-21T08:16:00.1962413Z               "line": 44
2026-06-21T08:16:00.1962510Z             },
2026-06-21T08:16:00.1962614Z             {
2026-06-21T08:16:00.1962751Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-21T08:16:00.1962857Z               "line": 66
2026-06-21T08:16:00.1962962Z             }
2026-06-21T08:16:00.1963066Z           ]
2026-06-21T08:16:00.1963177Z         },
2026-06-21T08:16:00.1963286Z         "unit": {
2026-06-21T08:16:00.1963390Z           "complete": true,
2026-06-21T08:16:00.1963511Z           "evidence": [
2026-06-21T08:16:00.1963610Z             {
2026-06-21T08:16:00.1963769Z               "path": "crates/spt-term/src/reader.rs",
2026-06-21T08:16:00.1963873Z               "line": 186
2026-06-21T08:16:00.1963982Z             },
2026-06-21T08:16:00.1964083Z             {
2026-06-21T08:16:00.1964221Z               "path": "crates/spt-term/src/reader.rs",
2026-06-21T08:16:00.1964329Z               "line": 238
2026-06-21T08:16:00.1964434Z             },
2026-06-21T08:16:00.1964542Z             {
2026-06-21T08:16:00.1964675Z               "path": "crates/spt-term/src/reader.rs",
2026-06-21T08:16:00.1964795Z               "line": 266
2026-06-21T08:16:00.1964904Z             }
2026-06-21T08:16:00.1965004Z           ]
2026-06-21T08:16:00.1965100Z         }
2026-06-21T08:16:00.1965200Z       }
2026-06-21T08:16:00.1965299Z     },
2026-06-21T08:16:00.1965386Z     {
2026-06-21T08:16:00.1965539Z       "id": "REQ-HAZARD-CONTROLLER-RETAKE-FLOOR",
2026-06-21T08:16:00.1969892Z       "title": "`become_controller` should STRUCTURALLY refuse a controller re-take whose `from_seq` falls below the connection's already-delivered contiguous floor — making the P1c reorder invariant un-reintroducible by a future caller, not just removed at the one caller. ROOT/SCOPE (doyle proposed, P1c gate dialogue): P1c fixes REQ-HAZARD-CONTROLLER-WRITER-REORDER three ways (handoff single-take + epoch-gate-under-lock + session_cursors seed), removing the one decreasing-floor double-take and bounding any other to already-committed-only. A self-enforcing broker guard would refuse the bad SHAPE outright. BLOCKER: the obvious predicate (`from_seq >= delivered_through`) is UNSAFE because `delivered_through` is SESSION-WIDE (the `Arc<AtomicU64>` on `OutputLog`, shared by all controllers/viewers, advanced monotonic-MAX; `resume_seq` reads it) — a normal fresh-operator `from_seq=0` attach to a producing session legitimately sits below it (full ring replay + consumer dedup-below/snap-above), and monotonic-MAX can't distinguish the hazard (a `seq1`-without-`seq0` write reads as `2`). The structurally-correct guard needs a NEW per-connection contiguous-sent cursor (the true highest-contiguous seq this socket has received) that does not exist today; the guard then refuses a re-take below THAT. Bigger than P1c; no live gap (P1c fully fixes the actual bug). Mint/refine stages when the per-connection cursor is built. (v0.13.0 follow-up, post-ship)",
2026-06-21T08:16:00.1970110Z       "requiredStages": [],
2026-06-21T08:16:00.1970217Z       "stages": {
2026-06-21T08:16:00.1970321Z         "doc": {
2026-06-21T08:16:00.1970435Z           "complete": false,
2026-06-21T08:16:00.1970541Z           "evidence": []
2026-06-21T08:16:00.1970646Z         },
2026-06-21T08:16:00.1970754Z         "impl": {
2026-06-21T08:16:00.1970879Z           "complete": false,
2026-06-21T08:16:00.1970979Z           "evidence": []
2026-06-21T08:16:00.1971088Z         },
2026-06-21T08:16:00.1971189Z         "int": {
2026-06-21T08:16:00.1971437Z           "complete": false,
2026-06-21T08:16:00.1971556Z           "evidence": []
2026-06-21T08:16:00.1971646Z         },
2026-06-21T08:16:00.1971847Z         "unit": {
2026-06-21T08:16:00.1971956Z           "complete": false,
2026-06-21T08:16:00.1972065Z           "evidence": []
2026-06-21T08:16:00.1972170Z         }
2026-06-21T08:16:00.1972278Z       }
2026-06-21T08:16:00.1972387Z     },
2026-06-21T08:16:00.1972488Z     {
2026-06-21T08:16:00.1972649Z       "id": "REQ-HAZARD-CONTROLLER-WRITER-REORDER",
2026-06-21T08:16:00.1986244Z       "title": "Two `controller_writer` threads must never race ONE brain↔broker connection's socket. ROOT (doyle, instrumented RACEDIAG repro on kitsubito): on a brain-restart re-serve the handoff brain registers as controller on the SAME session TWICE over the SAME `Brain::conn` socket — (1) `Brain::handoff` eagerly `subscribe(prior.session_id, prior.next_seq=1)` → `become_controller(from_seq=1)`, initial=[1], spawns writer-A (writes seq 1); (2) `serve_attach` re-handles the replayed `Request{from_seq:0}` → `attach_as(sid,0)` → `become_controller(from_seq=0)`, initial=[0,1], spawns writer-B (writes 0 then 1). `become_controller` (broker.rs) drops the prior `ControllerSink` (its `tx`) but does NOT stop the prior writer thread — writer-A keeps flushing its owned `initial` batch, and both writers hold clones of the same `SharedSend` (`Arc<Mutex<socket>>`) with NO inter-thread ordering. When writer-A's seq 1 wins the socket before writer-B's seq 0, the strict legacy consumer (brain.rs read_event reject-gap path) sees `output gap: got seq 1 want 0` → the test `attach_survives_target_brain_restart_exactly_once` panics at `.expect(\"re-serve\")` OR HANGS in `render_until` (serve thread died on the gap → MARKER_TWO never reaches the wire). `prior.next_seq` is life1's CONSUMPTION cursor, NOT life2's connection state — life2's socket has been sent NOTHING, so a `from_seq=0` full replay on a connection that already streamed seq 1 is contradictory. Snap-above tolerance ALONE can't fix it (it would dedup-drop the late seq 0 → byte loss → the exactly-once byte-identity assert fails). PRE-EXISTING, surfaced by the v0.13.0 green-both-runners release gate; P1b is INNOCENT (its diff touches only input-ack machinery, proven mechanically + the test passes post-P1b in isolation). Sibling flaky cluster: `inject_control_wedge::g2`, `broker::spawn_env_reaches_child`. INVARIANT: on a single brain↔broker connection the controller output-frame stream is monotonic non-decreasing in seq (modulo dedup re-sends); exactly ONE `controller_writer` is ever live per connection; a SUPERSEDED writer writes NO further frames; a re-serve never replays a seq below what the connection already received. FIX (doyle design, corrected at the gate 2026-06-20): fix #1 as designed ('drop handoff's eager subscribe so serve_attach's attach_as is the sole registration') was REVERTED — handoff's `subscribe(prior.next_seq)` IS the standalone-resume mechanism (the brain-only update engine `apply_brain_only` + the `handoff`/`idempotent`/`daemon_e2e` int tests replay output through it with NO `serve_attach`; dropping it hung every resume-via-handoff test). The shipped fix is three parts: (1) CORRECTNESS — `Brain::handoff` seeds `session_cursors` at `prior.next_seq` so the consumer runs the production dedup-below+snap-above path, never the strict reject-gap legacy trap; this is COMPLETE (not merely tolerant) because every `controller_writer` emits an ASCENDING seq stream and the surviving writer (serve_attach's attach_as(sid,0)) offers the complete `[0,end]` range, so a snap-above merge of ascending writers delivers `[K,end]` with no skip/dup (first sighting of any seq>M is preceded by M on that writer). (2) INVARIANT — `controller_writer`'s INITIAL-BATCH replay is epoch-gated: `controller_epoch` is a shared `Arc<AtomicU64>`, the writer re-reads it UNDER `send.lock()` (atomically with `write_frame`) and returns the instant it is superseded — no check-then-block-then-write window, no superseded replay (W1-safe: never blocks the drain under `Mutex<OutputLog>`). The LIVE loop is NOT gated (new output only flows to the current controller; a superseded writer must still deliver its terminal `Displaced` kick — gating it suppressed the loud-take notice; it ends on `tx`-drop). (3) EXPLICIT-RESUME / OPERATOR-STREAM BOUNDARY (the LOAD-BEARING fix — kitsubito RACEDIAG ~33% repro the keystones missed) — `Brain::subscribe_with` (shared by attach/attach_as) resets the resume-mode dedup cursor to `from_seq`. The handoff eager subscribe makes serve_attach's brain receive the replay's seq K BEFORE the operator Request is processed (`attached`=false); that frame is dropped by the if-attached forward gate but the snap-above cursor already advanced past K, and `attach_as(sid,0)`'s re-subscribe used to leave the cursor advanced → the broker's re-send of seq K arrives below it, deduped, never forwarded → operator viewport forward-gap (silent content loss in the real rc consumer). Resetting to from_seq on the attach_as re-subscribe re-delivers from 0 (operator dedups the overlap) so seq K reaches the viewport. The epoch gate (2) is sound (RACEDIAG: zero socket interleaving above K); cold-start brains (empty map — production dispatch serve) keep the legacy next_seq path, so production is unaffected. (v0.13.0)",
2026-06-21T08:16:00.1986921Z       "requiredStages": [
2026-06-21T08:16:00.1987030Z         "doc",
2026-06-21T08:16:00.1987146Z         "impl",
2026-06-21T08:16:00.1987254Z         "unit",
2026-06-21T08:16:00.1987364Z         "int"
2026-06-21T08:16:00.1987466Z       ],
2026-06-21T08:16:00.1987579Z       "stages": {
2026-06-21T08:16:00.1987688Z         "doc": {
2026-06-21T08:16:00.1987808Z           "complete": true,
2026-06-21T08:16:00.1987931Z           "evidence": [
2026-06-21T08:16:00.1988040Z             {
2026-06-21T08:16:00.1988178Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.1988290Z               "line": 468
2026-06-21T08:16:00.1988400Z             }
2026-06-21T08:16:00.1988505Z           ]
2026-06-21T08:16:00.1988610Z         },
2026-06-21T08:16:00.1988734Z         "impl": {
2026-06-21T08:16:00.1988858Z           "complete": true,
2026-06-21T08:16:00.1989064Z           "evidence": [
2026-06-21T08:16:00.1989172Z             {
2026-06-21T08:16:00.1989315Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.1989436Z               "line": 342
2026-06-21T08:16:00.1989540Z             },
2026-06-21T08:16:00.1989645Z             {
2026-06-21T08:16:00.1989798Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.1989911Z               "line": 1188
2026-06-21T08:16:00.1990022Z             },
2026-06-21T08:16:00.1990126Z             {
2026-06-21T08:16:00.1990274Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.1990385Z               "line": 763
2026-06-21T08:16:00.1990492Z             }
2026-06-21T08:16:00.1990604Z           ]
2026-06-21T08:16:00.1990700Z         },
2026-06-21T08:16:00.1990807Z         "int": {
2026-06-21T08:16:00.1990921Z           "complete": true,
2026-06-21T08:16:00.1991041Z           "evidence": [
2026-06-21T08:16:00.1991146Z             {
2026-06-21T08:16:00.1991303Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T08:16:00.1991428Z               "line": 1163
2026-06-21T08:16:00.1991536Z             },
2026-06-21T08:16:00.1991647Z             {
2026-06-21T08:16:00.1991789Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T08:16:00.1991904Z               "line": 1264
2026-06-21T08:16:00.1992005Z             },
2026-06-21T08:16:00.1992114Z             {
2026-06-21T08:16:00.1992262Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-21T08:16:00.1992375Z               "line": 1169
2026-06-21T08:16:00.1992476Z             }
2026-06-21T08:16:00.1992582Z           ]
2026-06-21T08:16:00.1992686Z         },
2026-06-21T08:16:00.1992790Z         "unit": {
2026-06-21T08:16:00.1992906Z           "complete": true,
2026-06-21T08:16:00.1993028Z           "evidence": [
2026-06-21T08:16:00.1993128Z             {
2026-06-21T08:16:00.1993383Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.1993492Z               "line": 2777
2026-06-21T08:16:00.1993698Z             }
2026-06-21T08:16:00.1993802Z           ]
2026-06-21T08:16:00.1993904Z         }
2026-06-21T08:16:00.1994008Z       }
2026-06-21T08:16:00.1994108Z     },
2026-06-21T08:16:00.1994214Z     {
2026-06-21T08:16:00.1994360Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-21T08:16:00.1994809Z       "title": "Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)",
2026-06-21T08:16:00.1994928Z       "requiredStages": [
2026-06-21T08:16:00.1995038Z         "impl",
2026-06-21T08:16:00.1995144Z         "unit",
2026-06-21T08:16:00.1995238Z         "int"
2026-06-21T08:16:00.1995343Z       ],
2026-06-21T08:16:00.1995449Z       "stages": {
2026-06-21T08:16:00.1995558Z         "doc": {
2026-06-21T08:16:00.1995677Z           "complete": false,
2026-06-21T08:16:00.1995807Z           "evidence": []
2026-06-21T08:16:00.1995910Z         },
2026-06-21T08:16:00.1996009Z         "impl": {
2026-06-21T08:16:00.1996134Z           "complete": true,
2026-06-21T08:16:00.1996250Z           "evidence": [
2026-06-21T08:16:00.1996364Z             {
2026-06-21T08:16:00.1996514Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.1996622Z               "line": 178
2026-06-21T08:16:00.1996722Z             },
2026-06-21T08:16:00.1996823Z             {
2026-06-21T08:16:00.1996979Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.1997090Z               "line": 226
2026-06-21T08:16:00.1997200Z             },
2026-06-21T08:16:00.1997308Z             {
2026-06-21T08:16:00.1997453Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T08:16:00.1997571Z               "line": 79
2026-06-21T08:16:00.1997672Z             },
2026-06-21T08:16:00.1997777Z             {
2026-06-21T08:16:00.1997905Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-21T08:16:00.1998030Z               "line": 52
2026-06-21T08:16:00.1998139Z             },
2026-06-21T08:16:00.1998248Z             {
2026-06-21T08:16:00.1998392Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.1998496Z               "line": 263
2026-06-21T08:16:00.1998600Z             },
2026-06-21T08:16:00.1998705Z             {
2026-06-21T08:16:00.1998850Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-21T08:16:00.1999047Z               "line": 27
2026-06-21T08:16:00.1999151Z             },
2026-06-21T08:16:00.1999265Z             {
2026-06-21T08:16:00.1999404Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-21T08:16:00.1999517Z               "line": 79
2026-06-21T08:16:00.1999614Z             },
2026-06-21T08:16:00.1999728Z             {
2026-06-21T08:16:00.1999875Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-21T08:16:00.1999986Z               "line": 102
2026-06-21T08:16:00.2000095Z             },
2026-06-21T08:16:00.2000205Z             {
2026-06-21T08:16:00.2000348Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T08:16:00.2000458Z               "line": 116
2026-06-21T08:16:00.2000563Z             }
2026-06-21T08:16:00.2000663Z           ]
2026-06-21T08:16:00.2000768Z         },
2026-06-21T08:16:00.2000883Z         "int": {
2026-06-21T08:16:00.2000992Z           "complete": true,
2026-06-21T08:16:00.2001106Z           "evidence": [
2026-06-21T08:16:00.2001212Z             {
2026-06-21T08:16:00.2001372Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-21T08:16:00.2001491Z               "line": 43
2026-06-21T08:16:00.2001592Z             }
2026-06-21T08:16:00.2001697Z           ]
2026-06-21T08:16:00.2001801Z         },
2026-06-21T08:16:00.2001907Z         "unit": {
2026-06-21T08:16:00.2002016Z           "complete": true,
2026-06-21T08:16:00.2002130Z           "evidence": [
2026-06-21T08:16:00.2002241Z             {
2026-06-21T08:16:00.2002493Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.2002607Z               "line": 678
2026-06-21T08:16:00.2002793Z             },
2026-06-21T08:16:00.2002908Z             {
2026-06-21T08:16:00.2003036Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.2003147Z               "line": 495
2026-06-21T08:16:00.2003255Z             },
2026-06-21T08:16:00.2003360Z             {
2026-06-21T08:16:00.2003505Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-21T08:16:00.2003617Z               "line": 124
2026-06-21T08:16:00.2003721Z             },
2026-06-21T08:16:00.2003822Z             {
2026-06-21T08:16:00.2003972Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-21T08:16:00.2004087Z               "line": 143
2026-06-21T08:16:00.2004192Z             },
2026-06-21T08:16:00.2004301Z             {
2026-06-21T08:16:00.2004444Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-21T08:16:00.2004564Z               "line": 160
2026-06-21T08:16:00.2004673Z             },
2026-06-21T08:16:00.2004774Z             {
2026-06-21T08:16:00.2004925Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-21T08:16:00.2005031Z               "line": 187
2026-06-21T08:16:00.2005140Z             },
2026-06-21T08:16:00.2005240Z             {
2026-06-21T08:16:00.2005394Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-21T08:16:00.2005512Z               "line": 206
2026-06-21T08:16:00.2005607Z             },
2026-06-21T08:16:00.2005709Z             {
2026-06-21T08:16:00.2005855Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T08:16:00.2005975Z               "line": 229
2026-06-21T08:16:00.2006081Z             }
2026-06-21T08:16:00.2006189Z           ]
2026-06-21T08:16:00.2006295Z         }
2026-06-21T08:16:00.2006396Z       }
2026-06-21T08:16:00.2006503Z     },
2026-06-21T08:16:00.2006598Z     {
2026-06-21T08:16:00.2006755Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-21T08:16:00.2007436Z       "title": "Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)",
2026-06-21T08:16:00.2007563Z       "requiredStages": [
2026-06-21T08:16:00.2007679Z         "impl",
2026-06-21T08:16:00.2007783Z         "unit"
2026-06-21T08:16:00.2007888Z       ],
2026-06-21T08:16:00.2007998Z       "stages": {
2026-06-21T08:16:00.2008108Z         "doc": {
2026-06-21T08:16:00.2008222Z           "complete": false,
2026-06-21T08:16:00.2008332Z           "evidence": []
2026-06-21T08:16:00.2008441Z         },
2026-06-21T08:16:00.2008547Z         "impl": {
2026-06-21T08:16:00.2008666Z           "complete": true,
2026-06-21T08:16:00.2008775Z           "evidence": [
2026-06-21T08:16:00.2008876Z             {
2026-06-21T08:16:00.2009098Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.2009217Z               "line": 1222
2026-06-21T08:16:00.2009326Z             },
2026-06-21T08:16:00.2009429Z             {
2026-06-21T08:16:00.2009587Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.2009697Z               "line": 1476
2026-06-21T08:16:00.2009801Z             }
2026-06-21T08:16:00.2009902Z           ]
2026-06-21T08:16:00.2010007Z         },
2026-06-21T08:16:00.2010116Z         "int": {
2026-06-21T08:16:00.2010222Z           "complete": false,
2026-06-21T08:16:00.2010336Z           "evidence": []
2026-06-21T08:16:00.2010440Z         },
2026-06-21T08:16:00.2010546Z         "unit": {
2026-06-21T08:16:00.2010655Z           "complete": true,
2026-06-21T08:16:00.2010770Z           "evidence": [
2026-06-21T08:16:00.2010871Z             {
2026-06-21T08:16:00.2011018Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-21T08:16:00.2011128Z               "line": 161
2026-06-21T08:16:00.2011237Z             }
2026-06-21T08:16:00.2011347Z           ]
2026-06-21T08:16:00.2011571Z         }
2026-06-21T08:16:00.2011666Z       }
2026-06-21T08:16:00.2011767Z     },
2026-06-21T08:16:00.2011881Z     {
2026-06-21T08:16:00.2012118Z       "id": "REQ-HAZARD-DAEMON-STOP-BARRIER",
2026-06-21T08:16:00.2013892Z       "title": "B3: `spt daemon stop` then an immediate `spt daemon start` does NOT race — stop fully completes before it returns. Today request_stop (seedmap.rs:240-255) returns on the KIND_STOPPING ack (sent seedmap.rs:174-176) BEFORE the seed socket unbinds, so a following is_running ping (daemon.rs:375) wins the exit window and start reports ALREADY_RUNNING (operator: daemon stop → STOPPED then start → ALREADY_RUNNING). FIX: unbind/stop-gate the seed socket BEFORE acking KIND_STOPPING, OR request_stop waits for a ping-to-fail before returning. Unit: stop then immediate is_running()==false. (v0.12.0)",
2026-06-21T08:16:00.2014031Z       "requiredStages": [
2026-06-21T08:16:00.2014135Z         "impl",
2026-06-21T08:16:00.2014244Z         "unit"
2026-06-21T08:16:00.2014348Z       ],
2026-06-21T08:16:00.2014490Z       "stages": {
2026-06-21T08:16:00.2014594Z         "doc": {
2026-06-21T08:16:00.2014709Z           "complete": false,
2026-06-21T08:16:00.2014851Z           "evidence": []
2026-06-21T08:16:00.2014952Z         },
2026-06-21T08:16:00.2015057Z         "impl": {
2026-06-21T08:16:00.2015166Z           "complete": true,
2026-06-21T08:16:00.2015286Z           "evidence": [
2026-06-21T08:16:00.2015395Z             {
2026-06-21T08:16:00.2015552Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-21T08:16:00.2015668Z               "line": 257
2026-06-21T08:16:00.2015758Z             }
2026-06-21T08:16:00.2015872Z           ]
2026-06-21T08:16:00.2015973Z         },
2026-06-21T08:16:00.2016082Z         "int": {
2026-06-21T08:16:00.2016206Z           "complete": false,
2026-06-21T08:16:00.2016317Z           "evidence": []
2026-06-21T08:16:00.2016420Z         },
2026-06-21T08:16:00.2016516Z         "unit": {
2026-06-21T08:16:00.2016646Z           "complete": true,
2026-06-21T08:16:00.2016754Z           "evidence": [
2026-06-21T08:16:00.2016860Z             {
2026-06-21T08:16:00.2017012Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-21T08:16:00.2017130Z               "line": 360
2026-06-21T08:16:00.2017230Z             }
2026-06-21T08:16:00.2017338Z           ]
2026-06-21T08:16:00.2017447Z         }
2026-06-21T08:16:00.2017552Z       }
2026-06-21T08:16:00.2017662Z     },
2026-06-21T08:16:00.2017766Z     {
2026-06-21T08:16:00.2017892Z       "id": "REQ-HAZARD-DAEMON-STOP-REAP",
2026-06-21T08:16:00.2019811Z       "title": "Breap: `spt daemon stop` REAPS the spt-hosted children it spawned — no orphaned psyche/harness processes. Today a stop leaves ~8 orphaned claude-spt-psyche.exe + spt.exe: Psyches are spawned DETACHED (runtime.rs:342-356, the Child is dropped — 'Detached' ~349) and the livehost stop flag Arc<AtomicBool> is NEVER raised (brainproc.rs:227-230 holds it 'for symmetry'). FIX: on stop, raise the livehost stop flag AND kill the spawned psyche/spt-hosted children — via a Windows job object / Unix process-group so the children die with the daemon (not detached-immortal). Folds with B3 (both the stop path). (v0.12.0)",
2026-06-21T08:16:00.2019985Z       "requiredStages": [
2026-06-21T08:16:00.2020090Z         "impl",
2026-06-21T08:16:00.2020196Z         "unit"
2026-06-21T08:16:00.2020300Z       ],
2026-06-21T08:16:00.2020414Z       "stages": {
2026-06-21T08:16:00.2020510Z         "doc": {
2026-06-21T08:16:00.2020629Z           "complete": false,
2026-06-21T08:16:00.2020739Z           "evidence": []
2026-06-21T08:16:00.2020844Z         },
2026-06-21T08:16:00.2020962Z         "impl": {
2026-06-21T08:16:00.2021078Z           "complete": true,
2026-06-21T08:16:00.2021187Z           "evidence": [
2026-06-21T08:16:00.2021291Z             {
2026-06-21T08:16:00.2021440Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.2021564Z               "line": 1018
2026-06-21T08:16:00.2021659Z             },
2026-06-21T08:16:00.2021769Z             {
2026-06-21T08:16:00.2022042Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2022169Z               "line": 283
2026-06-21T08:16:00.2022357Z             },
2026-06-21T08:16:00.2022464Z             {
2026-06-21T08:16:00.2022616Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2022727Z               "line": 316
2026-06-21T08:16:00.2022831Z             },
2026-06-21T08:16:00.2022940Z             {
2026-06-21T08:16:00.2023089Z               "path": "crates/spt-daemon/src/reap.rs",
2026-06-21T08:16:00.2023197Z               "line": 26
2026-06-21T08:16:00.2023304Z             }
2026-06-21T08:16:00.2023408Z           ]
2026-06-21T08:16:00.2023503Z         },
2026-06-21T08:16:00.2023613Z         "int": {
2026-06-21T08:16:00.2023723Z           "complete": false,
2026-06-21T08:16:00.2023841Z           "evidence": []
2026-06-21T08:16:00.2023938Z         },
2026-06-21T08:16:00.2024047Z         "unit": {
2026-06-21T08:16:00.2024170Z           "complete": true,
2026-06-21T08:16:00.2024291Z           "evidence": [
2026-06-21T08:16:00.2024409Z             {
2026-06-21T08:16:00.2024552Z               "path": "crates/spt-daemon/src/reap.rs",
2026-06-21T08:16:00.2024682Z               "line": 271
2026-06-21T08:16:00.2024780Z             },
2026-06-21T08:16:00.2024890Z             {
2026-06-21T08:16:00.2025031Z               "path": "crates/spt-daemon/src/reap.rs",
2026-06-21T08:16:00.2025135Z               "line": 348
2026-06-21T08:16:00.2025245Z             }
2026-06-21T08:16:00.2025351Z           ]
2026-06-21T08:16:00.2025464Z         }
2026-06-21T08:16:00.2025569Z       }
2026-06-21T08:16:00.2025675Z     },
2026-06-21T08:16:00.2025778Z     {
2026-06-21T08:16:00.2025913Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-21T08:16:00.2026132Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-21T08:16:00.2026252Z       "requiredStages": [
2026-06-21T08:16:00.2026361Z         "impl",
2026-06-21T08:16:00.2026470Z         "unit"
2026-06-21T08:16:00.2026590Z       ],
2026-06-21T08:16:00.2026708Z       "stages": {
2026-06-21T08:16:00.2026805Z         "doc": {
2026-06-21T08:16:00.2026928Z           "complete": false,
2026-06-21T08:16:00.2027037Z           "evidence": []
2026-06-21T08:16:00.2027139Z         },
2026-06-21T08:16:00.2027243Z         "impl": {
2026-06-21T08:16:00.2027362Z           "complete": true,
2026-06-21T08:16:00.2027482Z           "evidence": [
2026-06-21T08:16:00.2027591Z             {
2026-06-21T08:16:00.2027732Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T08:16:00.2027843Z               "line": 40
2026-06-21T08:16:00.2027945Z             },
2026-06-21T08:16:00.2028049Z             {
2026-06-21T08:16:00.2028189Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T08:16:00.2028302Z               "line": 103
2026-06-21T08:16:00.2028393Z             },
2026-06-21T08:16:00.2028489Z             {
2026-06-21T08:16:00.2028631Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T08:16:00.2028752Z               "line": 218
2026-06-21T08:16:00.2028856Z             },
2026-06-21T08:16:00.2029032Z             {
2026-06-21T08:16:00.2029180Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T08:16:00.2029294Z               "line": 323
2026-06-21T08:16:00.2029405Z             }
2026-06-21T08:16:00.2029504Z           ]
2026-06-21T08:16:00.2029609Z         },
2026-06-21T08:16:00.2029715Z         "int": {
2026-06-21T08:16:00.2029837Z           "complete": false,
2026-06-21T08:16:00.2029958Z           "evidence": []
2026-06-21T08:16:00.2030064Z         },
2026-06-21T08:16:00.2030171Z         "unit": {
2026-06-21T08:16:00.2030285Z           "complete": true,
2026-06-21T08:16:00.2030400Z           "evidence": [
2026-06-21T08:16:00.2030502Z             {
2026-06-21T08:16:00.2030641Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T08:16:00.2030761Z               "line": 361
2026-06-21T08:16:00.2030869Z             },
2026-06-21T08:16:00.2030974Z             {
2026-06-21T08:16:00.2031255Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T08:16:00.2031370Z               "line": 433
2026-06-21T08:16:00.2031565Z             },
2026-06-21T08:16:00.2031667Z             {
2026-06-21T08:16:00.2031809Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T08:16:00.2031919Z               "line": 496
2026-06-21T08:16:00.2032028Z             },
2026-06-21T08:16:00.2032128Z             {
2026-06-21T08:16:00.2032273Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T08:16:00.2032390Z               "line": 517
2026-06-21T08:16:00.2032486Z             }
2026-06-21T08:16:00.2032582Z           ]
2026-06-21T08:16:00.2032686Z         }
2026-06-21T08:16:00.2032796Z       }
2026-06-21T08:16:00.2032892Z     },
2026-06-21T08:16:00.2033001Z     {
2026-06-21T08:16:00.2033137Z       "id": "REQ-HAZARD-DEFERRED-MANIFEST",
2026-06-21T08:16:00.2035479Z       "title": "A pointer-mode (delegated / GhReleaseManaged) adapter whose binary/manifest is not yet extracted is reported with a CLEAR diagnostic, never silently dropped. Today such an adapter reads its manifest LIVE from source_dir (registry.rs manifest_dir ~146/149); a deferred / un-extracted install makes load_manifest fail → registered() (~410, filter_map(.ok())) SILENTLY DROPS the row → downstream ADAPTER_UNRESOLVED + a cryptic os-error-2 on `spt adapter use`. FIX: surface a clear diagnostic at the resolver + at `adapter use` (name the adapter + the deferred/missing-manifest cause + the fix), not a silent filter-drop and not a bare os-error-2; consider an eager manifest copy at register time so host_binaries survive before the binary download completes. doyle Finding A. (post-v0.10.0)",
2026-06-21T08:16:00.2035624Z       "requiredStages": [
2026-06-21T08:16:00.2035738Z         "impl",
2026-06-21T08:16:00.2035849Z         "unit"
2026-06-21T08:16:00.2035963Z       ],
2026-06-21T08:16:00.2036072Z       "stages": {
2026-06-21T08:16:00.2036187Z         "doc": {
2026-06-21T08:16:00.2036305Z           "complete": false,
2026-06-21T08:16:00.2036445Z           "evidence": []
2026-06-21T08:16:00.2036554Z         },
2026-06-21T08:16:00.2036658Z         "impl": {
2026-06-21T08:16:00.2036807Z           "complete": true,
2026-06-21T08:16:00.2036916Z           "evidence": [
2026-06-21T08:16:00.2037026Z             {
2026-06-21T08:16:00.2037174Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.2037297Z               "line": 402
2026-06-21T08:16:00.2037408Z             },
2026-06-21T08:16:00.2037507Z             {
2026-06-21T08:16:00.2037660Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.2037775Z               "line": 446
2026-06-21T08:16:00.2037879Z             }
2026-06-21T08:16:00.2037985Z           ]
2026-06-21T08:16:00.2038090Z         },
2026-06-21T08:16:00.2038207Z         "int": {
2026-06-21T08:16:00.2038326Z           "complete": false,
2026-06-21T08:16:00.2038440Z           "evidence": []
2026-06-21T08:16:00.2038538Z         },
2026-06-21T08:16:00.2038649Z         "unit": {
2026-06-21T08:16:00.2038768Z           "complete": true,
2026-06-21T08:16:00.2038886Z           "evidence": [
2026-06-21T08:16:00.2039077Z             {
2026-06-21T08:16:00.2039225Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.2039336Z               "line": 910
2026-06-21T08:16:00.2039441Z             }
2026-06-21T08:16:00.2039544Z           ]
2026-06-21T08:16:00.2039636Z         }
2026-06-21T08:16:00.2039745Z       }
2026-06-21T08:16:00.2039850Z     },
2026-06-21T08:16:00.2039951Z     {
2026-06-21T08:16:00.2040097Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-21T08:16:00.2040252Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-21T08:16:00.2040365Z       "requiredStages": [
2026-06-21T08:16:00.2040465Z         "impl",
2026-06-21T08:16:00.2040571Z         "unit"
2026-06-21T08:16:00.2040675Z       ],
2026-06-21T08:16:00.2040784Z       "stages": {
2026-06-21T08:16:00.2040889Z         "doc": {
2026-06-21T08:16:00.2041007Z           "complete": false,
2026-06-21T08:16:00.2041224Z           "evidence": []
2026-06-21T08:16:00.2041331Z         },
2026-06-21T08:16:00.2041530Z         "impl": {
2026-06-21T08:16:00.2041654Z           "complete": true,
2026-06-21T08:16:00.2041758Z           "evidence": [
2026-06-21T08:16:00.2041869Z             {
2026-06-21T08:16:00.2042002Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T08:16:00.2042125Z               "line": 116
2026-06-21T08:16:00.2042232Z             },
2026-06-21T08:16:00.2042341Z             {
2026-06-21T08:16:00.2042484Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T08:16:00.2042598Z               "line": 211
2026-06-21T08:16:00.2042702Z             }
2026-06-21T08:16:00.2042808Z           ]
2026-06-21T08:16:00.2042917Z         },
2026-06-21T08:16:00.2043017Z         "int": {
2026-06-21T08:16:00.2043133Z           "complete": false,
2026-06-21T08:16:00.2043251Z           "evidence": []
2026-06-21T08:16:00.2043351Z         },
2026-06-21T08:16:00.2043477Z         "unit": {
2026-06-21T08:16:00.2043594Z           "complete": true,
2026-06-21T08:16:00.2043712Z           "evidence": [
2026-06-21T08:16:00.2043823Z             {
2026-06-21T08:16:00.2043970Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T08:16:00.2044080Z               "line": 388
2026-06-21T08:16:00.2044181Z             },
2026-06-21T08:16:00.2044289Z             {
2026-06-21T08:16:00.2044429Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T08:16:00.2044552Z               "line": 469
2026-06-21T08:16:00.2044647Z             }
2026-06-21T08:16:00.2044758Z           ]
2026-06-21T08:16:00.2044853Z         }
2026-06-21T08:16:00.2044947Z       }
2026-06-21T08:16:00.2045053Z     },
2026-06-21T08:16:00.2045158Z     {
2026-06-21T08:16:00.2045314Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-21T08:16:00.2046442Z       "title": "Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn of an immortal child (daemon, shell binary) runs bInheritHandles=FALSE, or a caller capturing output anywhere up the process chain hangs forever on a pipe that never EOFs — std-handle flag stripping is NOT sufficient (grandparent strays still flow) (5.6)",
2026-06-21T08:16:00.2046584Z       "requiredStages": [
2026-06-21T08:16:00.2046694Z         "impl",
2026-06-21T08:16:00.2046799Z         "unit"
2026-06-21T08:16:00.2046908Z       ],
2026-06-21T08:16:00.2047019Z       "stages": {
2026-06-21T08:16:00.2047124Z         "doc": {
2026-06-21T08:16:00.2047247Z           "complete": true,
2026-06-21T08:16:00.2047358Z           "evidence": [
2026-06-21T08:16:00.2047476Z             {
2026-06-21T08:16:00.2047615Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.2047734Z               "line": 206
2026-06-21T08:16:00.2047839Z             }
2026-06-21T08:16:00.2047945Z           ]
2026-06-21T08:16:00.2048058Z         },
2026-06-21T08:16:00.2048163Z         "impl": {
2026-06-21T08:16:00.2048288Z           "complete": true,
2026-06-21T08:16:00.2048411Z           "evidence": [
2026-06-21T08:16:00.2048521Z             {
2026-06-21T08:16:00.2048669Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2048810Z               "line": 691
2026-06-21T08:16:00.2048915Z             },
2026-06-21T08:16:00.2049089Z             {
2026-06-21T08:16:00.2049242Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2049357Z               "line": 791
2026-06-21T08:16:00.2049461Z             },
2026-06-21T08:16:00.2049562Z             {
2026-06-21T08:16:00.2049709Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2049828Z               "line": 1120
2026-06-21T08:16:00.2049929Z             },
2026-06-21T08:16:00.2050038Z             {
2026-06-21T08:16:00.2050182Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.2050296Z               "line": 184
2026-06-21T08:16:00.2050400Z             }
2026-06-21T08:16:00.2050506Z           ]
2026-06-21T08:16:00.2050719Z         },
2026-06-21T08:16:00.2050831Z         "int": {
2026-06-21T08:16:00.2050949Z           "complete": false,
2026-06-21T08:16:00.2051179Z           "evidence": []
2026-06-21T08:16:00.2051291Z         },
2026-06-21T08:16:00.2051396Z         "unit": {
2026-06-21T08:16:00.2051510Z           "complete": true,
2026-06-21T08:16:00.2051627Z           "evidence": [
2026-06-21T08:16:00.2051722Z             {
2026-06-21T08:16:00.2051866Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2051975Z               "line": 1169
2026-06-21T08:16:00.2052080Z             },
2026-06-21T08:16:00.2052186Z             {
2026-06-21T08:16:00.2052352Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-21T08:16:00.2052458Z               "line": 44
2026-06-21T08:16:00.2052563Z             },
2026-06-21T08:16:00.2052671Z             {
2026-06-21T08:16:00.2052825Z               "path": "crates/spt/tests/shell_actgate_e2e.rs",
2026-06-21T08:16:00.2052933Z               "line": 52
2026-06-21T08:16:00.2053039Z             },
2026-06-21T08:16:00.2053135Z             {
2026-06-21T08:16:00.2053272Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-21T08:16:00.2053383Z               "line": 57
2026-06-21T08:16:00.2053496Z             },
2026-06-21T08:16:00.2053601Z             {
2026-06-21T08:16:00.2053756Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-21T08:16:00.2053873Z               "line": 54
2026-06-21T08:16:00.2053974Z             }
2026-06-21T08:16:00.2054080Z           ]
2026-06-21T08:16:00.2054182Z         }
2026-06-21T08:16:00.2054286Z       }
2026-06-21T08:16:00.2054383Z     },
2026-06-21T08:16:00.2054483Z     {
2026-06-21T08:16:00.2054635Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-21T08:16:00.2054888Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-21T08:16:00.2055013Z       "requiredStages": [
2026-06-21T08:16:00.2055113Z         "impl",
2026-06-21T08:16:00.2055226Z         "unit"
2026-06-21T08:16:00.2055332Z       ],
2026-06-21T08:16:00.2055451Z       "stages": {
2026-06-21T08:16:00.2055550Z         "doc": {
2026-06-21T08:16:00.2055666Z           "complete": false,
2026-06-21T08:16:00.2055789Z           "evidence": []
2026-06-21T08:16:00.2055894Z         },
2026-06-21T08:16:00.2056004Z         "impl": {
2026-06-21T08:16:00.2056122Z           "complete": true,
2026-06-21T08:16:00.2056243Z           "evidence": [
2026-06-21T08:16:00.2056357Z             {
2026-06-21T08:16:00.2056503Z               "path": "crates/spt-live/src/context.rs",
2026-06-21T08:16:00.2056618Z               "line": 26
2026-06-21T08:16:00.2056721Z             },
2026-06-21T08:16:00.2056829Z             {
2026-06-21T08:16:00.2056974Z               "path": "crates/spt-live/src/context.rs",
2026-06-21T08:16:00.2057092Z               "line": 135
2026-06-21T08:16:00.2060093Z             },
2026-06-21T08:16:00.2060232Z             {
2026-06-21T08:16:00.2060418Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-21T08:16:00.2060537Z               "line": 26
2026-06-21T08:16:00.2060645Z             },
2026-06-21T08:16:00.2060752Z             {
2026-06-21T08:16:00.2060918Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-21T08:16:00.2061037Z               "line": 237
2026-06-21T08:16:00.2061138Z             }
2026-06-21T08:16:00.2061247Z           ]
2026-06-21T08:16:00.2061347Z         },
2026-06-21T08:16:00.2061458Z         "int": {
2026-06-21T08:16:00.2061571Z           "complete": false,
2026-06-21T08:16:00.2061692Z           "evidence": []
2026-06-21T08:16:00.2061801Z         },
2026-06-21T08:16:00.2061908Z         "unit": {
2026-06-21T08:16:00.2062028Z           "complete": true,
2026-06-21T08:16:00.2062132Z           "evidence": [
2026-06-21T08:16:00.2062239Z             {
2026-06-21T08:16:00.2062383Z               "path": "crates/spt-live/src/context.rs",
2026-06-21T08:16:00.2062493Z               "line": 161
2026-06-21T08:16:00.2062602Z             },
2026-06-21T08:16:00.2062841Z             {
2026-06-21T08:16:00.2062994Z               "path": "crates/spt-live/src/context.rs",
2026-06-21T08:16:00.2063202Z               "line": 170
2026-06-21T08:16:00.2063309Z             },
2026-06-21T08:16:00.2063413Z             {
2026-06-21T08:16:00.2063556Z               "path": "crates/spt-live/src/context.rs",
2026-06-21T08:16:00.2063667Z               "line": 179
2026-06-21T08:16:00.2063766Z             },
2026-06-21T08:16:00.2063876Z             {
2026-06-21T08:16:00.2064015Z               "path": "crates/spt-live/src/context.rs",
2026-06-21T08:16:00.2064128Z               "line": 190
2026-06-21T08:16:00.2064224Z             },
2026-06-21T08:16:00.2064334Z             {
2026-06-21T08:16:00.2064471Z               "path": "crates/spt-live/src/context.rs",
2026-06-21T08:16:00.2064573Z               "line": 199
2026-06-21T08:16:00.2064682Z             },
2026-06-21T08:16:00.2064785Z             {
2026-06-21T08:16:00.2064928Z               "path": "crates/spt-live/src/context.rs",
2026-06-21T08:16:00.2065039Z               "line": 216
2026-06-21T08:16:00.2065143Z             },
2026-06-21T08:16:00.2065248Z             {
2026-06-21T08:16:00.2065381Z               "path": "crates/spt-live/src/context.rs",
2026-06-21T08:16:00.2065490Z               "line": 242
2026-06-21T08:16:00.2065597Z             },
2026-06-21T08:16:00.2065706Z             {
2026-06-21T08:16:00.2065839Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-21T08:16:00.2065953Z               "line": 295
2026-06-21T08:16:00.2066072Z             },
2026-06-21T08:16:00.2066173Z             {
2026-06-21T08:16:00.2066316Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-21T08:16:00.2066425Z               "line": 244
2026-06-21T08:16:00.2066532Z             },
2026-06-21T08:16:00.2066635Z             {
2026-06-21T08:16:00.2066798Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-21T08:16:00.2066917Z               "line": 265
2026-06-21T08:16:00.2067026Z             },
2026-06-21T08:16:00.2067130Z             {
2026-06-21T08:16:00.2067285Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-21T08:16:00.2067408Z               "line": 293
2026-06-21T08:16:00.2067519Z             },
2026-06-21T08:16:00.2067624Z             {
2026-06-21T08:16:00.2067786Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-21T08:16:00.2067891Z               "line": 317
2026-06-21T08:16:00.2068000Z             },
2026-06-21T08:16:00.2068101Z             {
2026-06-21T08:16:00.2068253Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-21T08:16:00.2068372Z               "line": 327
2026-06-21T08:16:00.2068473Z             },
2026-06-21T08:16:00.2068577Z             {
2026-06-21T08:16:00.2068726Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-21T08:16:00.2068844Z               "line": 540
2026-06-21T08:16:00.2069045Z             }
2026-06-21T08:16:00.2069159Z           ]
2026-06-21T08:16:00.2069259Z         }
2026-06-21T08:16:00.2069365Z       }
2026-06-21T08:16:00.2069479Z     },
2026-06-21T08:16:00.2069579Z     {
2026-06-21T08:16:00.2069747Z       "id": "REQ-HAZARD-DRIVEN-BY-IDLE-REMOTE-EVICT",
2026-06-21T08:16:00.2074494Z       "title": "An spt-hosted endpoint driven by a REMOTE controller whose remote is gone but whose broker connection stays OPEN (a wedged/lost pump that never delivers the detach) AND whose session is IDLE (no output) stays latched ONLINE+CONTROLLED forever: the W1 drain-evict only fires on OUTPUT (CONTROLLER_WRITE_DEADLINE on a backed-up write), a clean disconnect self-heals via detach_if→clear_controller, but an idle session with a half-open/wedged controller connection produces neither signal. PROVED repro-first on a real broker (v0.13.0 W5, inject_control_wedge.rs w5_a2): controller_by STAYS Some(origin) and driven_by STAYS Some after the remote is abandoned without a clean EOF on an idle session — so the brain reconcile CANNOT detect it from KIND_SESSIONS controller_by (the broker still reports it controlled). FIX DIRECTION (doyle ruling 2026-06-19, broker-side single-writer — the broker owns driven_by/clear_controller): wire the EXISTING D4c NetPresence connection-disconnect event → clear_controller for any session whose controller identity == the dead origin (become_controller already stores Some(origin); presence events already exist — modest wiring, NOT a new probe). The liveness ORACLE is QUIC's own keepalive/idle-timeout: a presence-disconnect IS a real QUIC conn close, already tolerant of transient blips within the keepalive window, so NO heavy partition ADR is needed UNLESS the QUIC timeout proves too slow for the UX (then mint an ADR for a faster controller-heartbeat + its false-evict bound). Composes with W1 (output path) + W5 Gap B (no-session) — this is the third, idle-remote, leg. (v0.13.0 follow-up)",
2026-06-21T08:16:00.2074880Z       "requiredStages": [],
2026-06-21T08:16:00.2074993Z       "stages": {
2026-06-21T08:16:00.2075104Z         "doc": {
2026-06-21T08:16:00.2075228Z           "complete": false,
2026-06-21T08:16:00.2075360Z           "evidence": []
2026-06-21T08:16:00.2075469Z         },
2026-06-21T08:16:00.2075576Z         "impl": {
2026-06-21T08:16:00.2075722Z           "complete": false,
2026-06-21T08:16:00.2075838Z           "evidence": []
2026-06-21T08:16:00.2075946Z         },
2026-06-21T08:16:00.2076055Z         "int": {
2026-06-21T08:16:00.2076176Z           "complete": false,
2026-06-21T08:16:00.2076289Z           "evidence": []
2026-06-21T08:16:00.2076394Z         },
2026-06-21T08:16:00.2076500Z         "unit": {
2026-06-21T08:16:00.2076609Z           "complete": false,
2026-06-21T08:16:00.2076724Z           "evidence": []
2026-06-21T08:16:00.2076824Z         }
2026-06-21T08:16:00.2076928Z       }
2026-06-21T08:16:00.2077039Z     },
2026-06-21T08:16:00.2077144Z     {
2026-06-21T08:16:00.2077290Z       "id": "REQ-HAZARD-DRIVEN-BY-SELFHEAL",
2026-06-21T08:16:00.2078832Z       "title": "An spt-hosted endpoint's ONLINE+CONTROLLED state (`driven_by`) must CLEAR even when the detach IPC is lost — do NOT rely on the detach signal (same lesson as REQ-HAZARD-HOSTED-LIVENESS-RECONCILE B2): the reconcile loop clears `driven_by` when the endpoint has no live controller/session. Today a wedged or lost pump never delivers the detach, so the endpoint stays latched CONTROLLED forever. Composes with W1 (the wedge no longer blocks the detach) and rides the same pull-primary reconcile substrate as B2. (v0.13.0)",
2026-06-21T08:16:00.2079043Z       "requiredStages": [
2026-06-21T08:16:00.2079156Z         "impl",
2026-06-21T08:16:00.2079261Z         "unit",
2026-06-21T08:16:00.2079362Z         "int"
2026-06-21T08:16:00.2079462Z       ],
2026-06-21T08:16:00.2079566Z       "stages": {
2026-06-21T08:16:00.2079677Z         "doc": {
2026-06-21T08:16:00.2079791Z           "complete": false,
2026-06-21T08:16:00.2079911Z           "evidence": []
2026-06-21T08:16:00.2080006Z         },
2026-06-21T08:16:00.2080115Z         "impl": {
2026-06-21T08:16:00.2080231Z           "complete": true,
2026-06-21T08:16:00.2080349Z           "evidence": [
2026-06-21T08:16:00.2080472Z             {
2026-06-21T08:16:00.2080634Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2080751Z               "line": 538
2026-06-21T08:16:00.2080855Z             },
2026-06-21T08:16:00.2080956Z             {
2026-06-21T08:16:00.2081094Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T08:16:00.2081208Z               "line": 625
2026-06-21T08:16:00.2081304Z             },
2026-06-21T08:16:00.2081408Z             {
2026-06-21T08:16:00.2081600Z               "path": "crates/spt-daemon/tests/driven_by_selfheal.rs",
2026-06-21T08:16:00.2081700Z               "line": 21
2026-06-21T08:16:00.2081809Z             }
2026-06-21T08:16:00.2081915Z           ]
2026-06-21T08:16:00.2082024Z         },
2026-06-21T08:16:00.2082128Z         "int": {
2026-06-21T08:16:00.2082239Z           "complete": true,
2026-06-21T08:16:00.2082357Z           "evidence": [
2026-06-21T08:16:00.2082463Z             {
2026-06-21T08:16:00.2082629Z               "path": "crates/spt-daemon/tests/driven_by_selfheal.rs",
2026-06-21T08:16:00.2082855Z               "line": 236
2026-06-21T08:16:00.2083062Z             },
2026-06-21T08:16:00.2083172Z             {
2026-06-21T08:16:00.2083341Z               "path": "crates/spt-daemon/tests/driven_by_selfheal.rs",
2026-06-21T08:16:00.2083460Z               "line": 396
2026-06-21T08:16:00.2083556Z             },
2026-06-21T08:16:00.2083665Z             {
2026-06-21T08:16:00.2083828Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
2026-06-21T08:16:00.2083942Z               "line": 1496
2026-06-21T08:16:00.2084042Z             },
2026-06-21T08:16:00.2084148Z             {
2026-06-21T08:16:00.2084323Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
2026-06-21T08:16:00.2084434Z               "line": 1648
2026-06-21T08:16:00.2084543Z             }
2026-06-21T08:16:00.2084652Z           ]
2026-06-21T08:16:00.2084763Z         },
2026-06-21T08:16:00.2084872Z         "unit": {
2026-06-21T08:16:00.2084996Z           "complete": true,
2026-06-21T08:16:00.2085106Z           "evidence": [
2026-06-21T08:16:00.2085205Z             {
2026-06-21T08:16:00.2085369Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2085487Z               "line": 887
2026-06-21T08:16:00.2085587Z             }
2026-06-21T08:16:00.2085688Z           ]
2026-06-21T08:16:00.2085788Z         }
2026-06-21T08:16:00.2085891Z       }
2026-06-21T08:16:00.2085996Z     },
2026-06-21T08:16:00.2086102Z     {
2026-06-21T08:16:00.2086253Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-21T08:16:00.2086435Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-21T08:16:00.2086549Z       "requiredStages": [
2026-06-21T08:16:00.2086660Z         "impl",
2026-06-21T08:16:00.2086769Z         "unit"
2026-06-21T08:16:00.2086877Z       ],
2026-06-21T08:16:00.2086979Z       "stages": {
2026-06-21T08:16:00.2087084Z         "doc": {
2026-06-21T08:16:00.2087260Z           "complete": false,
2026-06-21T08:16:00.2087536Z           "evidence": []
2026-06-21T08:16:00.2087676Z         },
2026-06-21T08:16:00.2088093Z         "impl": {
2026-06-21T08:16:00.2088448Z           "complete": true,
2026-06-21T08:16:00.2088839Z           "evidence": [
2026-06-21T08:16:00.2089241Z             {
2026-06-21T08:16:00.2089617Z               "path": "crates/spt-live/src/echo.rs",
2026-06-21T08:16:00.2090036Z               "line": 25
2026-06-21T08:16:00.2090393Z             },
2026-06-21T08:16:00.2090699Z             {
2026-06-21T08:16:00.2091055Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-21T08:16:00.2091502Z               "line": 26
2026-06-21T08:16:00.2091836Z             },
2026-06-21T08:16:00.2092137Z             {
2026-06-21T08:16:00.2092503Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-21T08:16:00.2093008Z               "line": 159
2026-06-21T08:16:00.2093367Z             }
2026-06-21T08:16:00.2093713Z           ]
2026-06-21T08:16:00.2094025Z         },
2026-06-21T08:16:00.2094330Z         "int": {
2026-06-21T08:16:00.2094650Z           "complete": false,
2026-06-21T08:16:00.2095022Z           "evidence": []
2026-06-21T08:16:00.2095370Z         },
2026-06-21T08:16:00.2095681Z         "unit": {
2026-06-21T08:16:00.2096042Z           "complete": true,
2026-06-21T08:16:00.2096433Z           "evidence": [
2026-06-21T08:16:00.2096818Z             {
2026-06-21T08:16:00.2097291Z               "path": "crates/spt-live/src/echo.rs",
2026-06-21T08:16:00.2097805Z               "line": 188
2026-06-21T08:16:00.2098216Z             },
2026-06-21T08:16:00.2098546Z             {
2026-06-21T08:16:00.2098929Z               "path": "crates/spt-live/src/echo.rs",
2026-06-21T08:16:00.2099699Z               "line": 240
2026-06-21T08:16:00.2100038Z             },
2026-06-21T08:16:00.2100314Z             {
2026-06-21T08:16:00.2100634Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-21T08:16:00.2100997Z               "line": 186
2026-06-21T08:16:00.2101278Z             }
2026-06-21T08:16:00.2101749Z           ]
2026-06-21T08:16:00.2101990Z         }
2026-06-21T08:16:00.2102233Z       }
2026-06-21T08:16:00.2102482Z     },
2026-06-21T08:16:00.2102881Z     {
2026-06-21T08:16:00.2103154Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-21T08:16:00.2103598Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-21T08:16:00.2104022Z       "requiredStages": [
2026-06-21T08:16:00.2104316Z         "impl",
2026-06-21T08:16:00.2104566Z         "unit"
2026-06-21T08:16:00.2104814Z       ],
2026-06-21T08:16:00.2105058Z       "stages": {
2026-06-21T08:16:00.2105310Z         "doc": {
2026-06-21T08:16:00.2105588Z           "complete": false,
2026-06-21T08:16:00.2105884Z           "evidence": []
2026-06-21T08:16:00.2106160Z         },
2026-06-21T08:16:00.2106412Z         "impl": {
2026-06-21T08:16:00.2106717Z           "complete": true,
2026-06-21T08:16:00.2107012Z           "evidence": [
2026-06-21T08:16:00.2107302Z             {
2026-06-21T08:16:00.2107608Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-21T08:16:00.2107984Z               "line": 48
2026-06-21T08:16:00.2108271Z             },
2026-06-21T08:16:00.2108533Z             {
2026-06-21T08:16:00.2108829Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-21T08:16:00.2109475Z               "line": 55
2026-06-21T08:16:00.2109735Z             },
2026-06-21T08:16:00.2109954Z             {
2026-06-21T08:16:00.2110212Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-21T08:16:00.2110517Z               "line": 74
2026-06-21T08:16:00.2110752Z             },
2026-06-21T08:16:00.2110956Z             {
2026-06-21T08:16:00.2111208Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-21T08:16:00.2111505Z               "line": 91
2026-06-21T08:16:00.2111729Z             }
2026-06-21T08:16:00.2111935Z           ]
2026-06-21T08:16:00.2112128Z         },
2026-06-21T08:16:00.2112328Z         "int": {
2026-06-21T08:16:00.2112555Z           "complete": false,
2026-06-21T08:16:00.2112807Z           "evidence": []
2026-06-21T08:16:00.2113066Z         },
2026-06-21T08:16:00.2113266Z         "unit": {
2026-06-21T08:16:00.2113499Z           "complete": true,
2026-06-21T08:16:00.2113751Z           "evidence": [
2026-06-21T08:16:00.2113985Z             {
2026-06-21T08:16:00.2114239Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-21T08:16:00.2114530Z               "line": 149
2026-06-21T08:16:00.2114756Z             },
2026-06-21T08:16:00.2114969Z             {
2026-06-21T08:16:00.2115213Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-21T08:16:00.2115504Z               "line": 166
2026-06-21T08:16:00.2115731Z             },
2026-06-21T08:16:00.2115947Z             {
2026-06-21T08:16:00.2116195Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-21T08:16:00.2116486Z               "line": 176
2026-06-21T08:16:00.2116720Z             },
2026-06-21T08:16:00.2116934Z             {
2026-06-21T08:16:00.2117172Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-21T08:16:00.2117463Z               "line": 194
2026-06-21T08:16:00.2117690Z             },
2026-06-21T08:16:00.2117920Z             {
2026-06-21T08:16:00.2118163Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-21T08:16:00.2118454Z               "line": 207
2026-06-21T08:16:00.2118674Z             }
2026-06-21T08:16:00.2118878Z           ]
2026-06-21T08:16:00.2119207Z         }
2026-06-21T08:16:00.2119403Z       }
2026-06-21T08:16:00.2119608Z     },
2026-06-21T08:16:00.2119802Z     {
2026-06-21T08:16:00.2120044Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-21T08:16:00.2120434Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-21T08:16:00.2120801Z       "requiredStages": [
2026-06-21T08:16:00.2121040Z         "impl",
2026-06-21T08:16:00.2121259Z         "unit"
2026-06-21T08:16:00.2121463Z       ],
2026-06-21T08:16:00.2121669Z       "stages": {
2026-06-21T08:16:00.2121884Z         "doc": {
2026-06-21T08:16:00.2122102Z           "complete": false,
2026-06-21T08:16:00.2122510Z           "evidence": []
2026-06-21T08:16:00.2122726Z         },
2026-06-21T08:16:00.2123029Z         "impl": {
2026-06-21T08:16:00.2123249Z           "complete": true,
2026-06-21T08:16:00.2123493Z           "evidence": [
2026-06-21T08:16:00.2123715Z             {
2026-06-21T08:16:00.2123964Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.2124260Z               "line": 466
2026-06-21T08:16:00.2124494Z             },
2026-06-21T08:16:00.2124703Z             {
2026-06-21T08:16:00.2124941Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-21T08:16:00.2125222Z               "line": 26
2026-06-21T08:16:00.2125460Z             }
2026-06-21T08:16:00.2125657Z           ]
2026-06-21T08:16:00.2125859Z         },
2026-06-21T08:16:00.2126060Z         "int": {
2026-06-21T08:16:00.2126292Z           "complete": false,
2026-06-21T08:16:00.2126544Z           "evidence": []
2026-06-21T08:16:00.2126773Z         },
2026-06-21T08:16:00.2126970Z         "unit": {
2026-06-21T08:16:00.2127203Z           "complete": true,
2026-06-21T08:16:00.2127450Z           "evidence": [
2026-06-21T08:16:00.2127677Z             {
2026-06-21T08:16:00.2127924Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-21T08:16:00.2128212Z               "line": 150
2026-06-21T08:16:00.2128442Z             },
2026-06-21T08:16:00.2128652Z             {
2026-06-21T08:16:00.2128900Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-21T08:16:00.2129310Z               "line": 208
2026-06-21T08:16:00.2129549Z             }
2026-06-21T08:16:00.2129753Z           ]
2026-06-21T08:16:00.2129958Z         }
2026-06-21T08:16:00.2130159Z       }
2026-06-21T08:16:00.2130358Z     },
2026-06-21T08:16:00.2130557Z     {
2026-06-21T08:16:00.2130813Z       "id": "REQ-HAZARD-EFFECT-JOURNAL-PTY-WEDGE",
2026-06-21T08:16:00.2140157Z       "title": "The effect journal serializes EVERY PTY effect under one mutex held ACROSS two fsyncs AND the blocking PTY write — so interactive input stutters and ultimately wedges the daemon hard. ROOT (doyle /diagnose, code-grounded + MEASURED on the operator's real Windows box, 2026-06-19): EffectJournal::apply_once (effect.rs:168-188) takes `inner.lock()` and holds it across `write_line(PENDING)` → `effect()` → `write_line(DONE)`, where write_line (effect.rs:235-239) does flush()+sync_all() (a full FlushFileBuffers) — so each effect pays TWO fsyncs under a GLOBAL lock, and the closure `effect()` (the actual PTY write, broker.rs:1257 EffectKind::PtyWrite via attach.rs:197 send_effect) runs while the lock is held. Two operator-visible facets, ONE root: (A) STUTTER/LAG — every keystroke is a PtyWrite effect = 2× sync_all serialized; measured fsync on %LOCALAPPDATA%\\spt-core = median 6.5ms, spikes to 198ms (C: was recently at 100%), so ~13ms+ per keystroke best case, hundreds under contention → 'many but not all keypresses take 100s of ms, choppy, worsens with volume'. (B) HARD PERMANENT WEDGE — when a PtyWrite `effect()` blocks (ConPTY input buffer full / harness not draining stdin), the journal lock is held INDEFINITELY → the single-threaded inbound-stream dispatch (dispatch.rs serve_attach, which both applies input effects AND opens attaches) can never progress → EVERY subsequent attach (`spt rc --view`/`--take`) fails with 'attach request: brain IPC read deadline elapsed' (confirmed: two retries deadline identically; broker control-plane KIND queries still answer — different thread). This REFUTES the W2-deferred ruling that park-(b)/(c) is 'Windows-benign because ConPTY absorbs 4MiB' — on the real box the input path wedges regardless. DISTINCT from W1 (REQ-HAZARD-INJECT-CONTROL-COEXIST = the OUTPUT drain, correctly fixed @8b5583e; output uses broker.rs:1106 append, NOT the fsync journal). This is the INPUT/effect-journal path W1 never touched, and it is THE wedge the operator hits with --take/--view. FIX DIRECTION (candidates, repro-first — extend inject_control_wedge.rs to a REAL backed-up-PTY-consumer + a real rc-client attach assertion, the gap W1's gate missed): (1) do NOT hold the journal lock across effect() — reserve the key + fsync PENDING under lock, RELEASE, run effect(), re-acquire to fsync DONE + mark applied (preserve crash-idempotency via the per-key reservation, not a global hold); (2) bound/fail-fast the PtyWrite itself (the W2-deferred park bound — write_input must never block indefinitely, DSR-answer must not hold the writer mutex across a blocking write); (3) drop per-keystroke fsync on the interactive path — PtyWrite effects are EPHEMERAL (a keystroke lost on a broker crash is retyped; PTY state is not reconstructed from keystroke replay), so in-memory applied-set dedup suffices (the broker survives the brain — that IS the dedup anchor), with async/batched fsync or no-fsync for EffectKind::PtyWrite while durable kinds (NetSend/NetDial/Registry/Spool) keep their fsync. Combine (1)+(3) at minimum. Add a KNOWN-HAZARDS.md entry on landing. (v0.13.0)",
2026-06-21T08:16:00.2148318Z       "requiredStages": [
2026-06-21T08:16:00.2148570Z         "impl",
2026-06-21T08:16:00.2148811Z         "unit",
2026-06-21T08:16:00.2149168Z         "int"
2026-06-21T08:16:00.2149405Z       ],
2026-06-21T08:16:00.2149609Z       "stages": {
2026-06-21T08:16:00.2149830Z         "doc": {
2026-06-21T08:16:00.2150049Z           "complete": false,
2026-06-21T08:16:00.2150311Z           "evidence": []
2026-06-21T08:16:00.2150544Z         },
2026-06-21T08:16:00.2150759Z         "impl": {
2026-06-21T08:16:00.2150979Z           "complete": true,
2026-06-21T08:16:00.2151221Z           "evidence": [
2026-06-21T08:16:00.2151454Z             {
2026-06-21T08:16:00.2151711Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-21T08:16:00.2152015Z               "line": 99
2026-06-21T08:16:00.2152238Z             },
2026-06-21T08:16:00.2152452Z             {
2026-06-21T08:16:00.2152716Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-21T08:16:00.2153006Z               "line": 201
2026-06-21T08:16:00.2153236Z             }
2026-06-21T08:16:00.2153449Z           ]
2026-06-21T08:16:00.2153669Z         },
2026-06-21T08:16:00.2153865Z         "int": {
2026-06-21T08:16:00.2154089Z           "complete": true,
2026-06-21T08:16:00.2154341Z           "evidence": [
2026-06-21T08:16:00.2154559Z             {
2026-06-21T08:16:00.2154848Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
2026-06-21T08:16:00.2155173Z               "line": 737
2026-06-21T08:16:00.2155410Z             }
2026-06-21T08:16:00.2155621Z           ]
2026-06-21T08:16:00.2155826Z         },
2026-06-21T08:16:00.2156035Z         "unit": {
2026-06-21T08:16:00.2156268Z           "complete": true,
2026-06-21T08:16:00.2156522Z           "evidence": [
2026-06-21T08:16:00.2156762Z             {
2026-06-21T08:16:00.2157016Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-21T08:16:00.2157309Z               "line": 517
2026-06-21T08:16:00.2157534Z             },
2026-06-21T08:16:00.2157744Z             {
2026-06-21T08:16:00.2157996Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-21T08:16:00.2158292Z               "line": 576
2026-06-21T08:16:00.2158517Z             }
2026-06-21T08:16:00.2158727Z           ]
2026-06-21T08:16:00.2158936Z         }
2026-06-21T08:16:00.2159207Z       }
2026-06-21T08:16:00.2159408Z     },
2026-06-21T08:16:00.2159609Z     {
2026-06-21T08:16:00.2159859Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-21T08:16:00.2161396Z       "title": "The daemon always runs unelevated in the invoking user's universe, regardless of which command spawns it: an elevated spawner de-elevates (Windows: UAC linked token via CreateProcessWithTokenW; Linux: drop to SUDO_UID/SUDO_GID + the invoker's HOME) — an elevated daemon's pipes deny unelevated clients (every later spt reads not-running→spawn→bind Access-denied) and a sudo'd daemon roots the user's state universe (5.7)",
2026-06-21T08:16:00.2162665Z       "requiredStages": [
2026-06-21T08:16:00.2162904Z         "doc",
2026-06-21T08:16:00.2163113Z         "impl",
2026-06-21T08:16:00.2163452Z         "unit"
2026-06-21T08:16:00.2163670Z       ],
2026-06-21T08:16:00.2163862Z       "stages": {
2026-06-21T08:16:00.2164182Z         "doc": {
2026-06-21T08:16:00.2164411Z           "complete": true,
2026-06-21T08:16:00.2164658Z           "evidence": [
2026-06-21T08:16:00.2164886Z             {
2026-06-21T08:16:00.2165129Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.2165408Z               "line": 214
2026-06-21T08:16:00.2165627Z             }
2026-06-21T08:16:00.2165833Z           ]
2026-06-21T08:16:00.2166039Z         },
2026-06-21T08:16:00.2166247Z         "impl": {
2026-06-21T08:16:00.2166471Z           "complete": true,
2026-06-21T08:16:00.2166720Z           "evidence": [
2026-06-21T08:16:00.2166944Z             {
2026-06-21T08:16:00.2167187Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2167477Z               "line": 56
2026-06-21T08:16:00.2167714Z             },
2026-06-21T08:16:00.2167913Z             {
2026-06-21T08:16:00.2168151Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2168451Z               "line": 580
2026-06-21T08:16:00.2168695Z             },
2026-06-21T08:16:00.2173121Z             {
2026-06-21T08:16:00.2173450Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T08:16:00.2173770Z               "line": 36
2026-06-21T08:16:00.2174008Z             },
2026-06-21T08:16:00.2174221Z             {
2026-06-21T08:16:00.2174479Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T08:16:00.2174793Z               "line": 59
2026-06-21T08:16:00.2175015Z             },
2026-06-21T08:16:00.2175228Z             {
2026-06-21T08:16:00.2175479Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T08:16:00.2175773Z               "line": 83
2026-06-21T08:16:00.2176007Z             },
2026-06-21T08:16:00.2176206Z             {
2026-06-21T08:16:00.2176468Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T08:16:00.2176783Z               "line": 140
2026-06-21T08:16:00.2177046Z             },
2026-06-21T08:16:00.2177267Z             {
2026-06-21T08:16:00.2177528Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T08:16:00.2177839Z               "line": 159
2026-06-21T08:16:00.2178070Z             },
2026-06-21T08:16:00.2178274Z             {
2026-06-21T08:16:00.2178521Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T08:16:00.2178821Z               "line": 384
2026-06-21T08:16:00.2179136Z             },
2026-06-21T08:16:00.2179350Z             {
2026-06-21T08:16:00.2179598Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T08:16:00.2179889Z               "line": 535
2026-06-21T08:16:00.2180115Z             },
2026-06-21T08:16:00.2180323Z             {
2026-06-21T08:16:00.2180580Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T08:16:00.2180866Z               "line": 581
2026-06-21T08:16:00.2181090Z             },
2026-06-21T08:16:00.2181299Z             {
2026-06-21T08:16:00.2181543Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.2181834Z               "line": 300
2026-06-21T08:16:00.2182063Z             },
2026-06-21T08:16:00.2182257Z             {
2026-06-21T08:16:00.2182491Z               "path": "crates/spt/src/main.rs",
2026-06-21T08:16:00.2182773Z               "line": 42
2026-06-21T08:16:00.2182989Z             }
2026-06-21T08:16:00.2183191Z           ]
2026-06-21T08:16:00.2183401Z         },
2026-06-21T08:16:00.2183599Z         "int": {
2026-06-21T08:16:00.2183818Z           "complete": false,
2026-06-21T08:16:00.2184067Z           "evidence": []
2026-06-21T08:16:00.2184291Z         },
2026-06-21T08:16:00.2184500Z         "unit": {
2026-06-21T08:16:00.2184720Z           "complete": true,
2026-06-21T08:16:00.2184959Z           "evidence": [
2026-06-21T08:16:00.2185182Z             {
2026-06-21T08:16:00.2185430Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T08:16:00.2185721Z               "line": 813
2026-06-21T08:16:00.2186116Z             },
2026-06-21T08:16:00.2186324Z             {
2026-06-21T08:16:00.2186577Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T08:16:00.2186982Z               "line": 854
2026-06-21T08:16:00.2187211Z             },
2026-06-21T08:16:00.2187406Z             {
2026-06-21T08:16:00.2187663Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T08:16:00.2187954Z               "line": 928
2026-06-21T08:16:00.2188179Z             }
2026-06-21T08:16:00.2188374Z           ]
2026-06-21T08:16:00.2188573Z         }
2026-06-21T08:16:00.2188773Z       }
2026-06-21T08:16:00.2189028Z     },
2026-06-21T08:16:00.2189276Z     {
2026-06-21T08:16:00.2189543Z       "id": "REQ-HAZARD-ENDPOINT-RUN-ATTACH-OUTPUT",
2026-06-21T08:16:00.2194632Z       "title": "A clean `spt rc` attach to a LIVE spt-hosted (`endpoint run`) harness must DELIVER the harness's PTY output. KEYSTONE — the operator's central 'attach shows no output' symptom, reproduced on the real dummy-harness fixture (v0.12.1 Wave 1) with NO death and NO wedge: bringup succeeds (online, harness pid alive + heartbeating, psyche hosted), the attach CONNECTS (PUMP_IPC_READER spawned, no RC_FAIL, holds the full window) — but receives EXACTLY 0 bytes over 10s of the harness's flushed [session.self] stdout. DISTINCT from REQ-HAZARD-VIEWER-CLOSE-DETACH (death) and REQ-HAZARD-ATTACH-WEDGE (dead-child backpressure): here the harness is ALIVE and the attach is a clean first subscribe. This BLOCKS the 'view is independent' invariant — re-attach is meaningless if a live endpoint-run harness shows nothing. KNOWN-GOOD (rules out 'no drain'): attach.rs `local_attach_via_loopback_conn_rides_the_same_pump` + `broker_spawns_the_pty_child_in_the_requested_cwd` prove the broker DOES drain+fan a `spawn_session` PTY child to a loopback attach over the SAME transport rc uses. Both spawn_session and endpoint-run's spawn_session_pid send KIND_SPAWN → the same dispatch_spawn (broker.rs:706/835) which starts the per-session drain+OutputLog — so the gap is NARROWER than 'no drain', endpoint-run-specific. Root candidates: (a) spawn_session_pid's SpawnReq stdio/env/cwd differs so the dummy's stdout isn't the captured ConPTY; (b) the harness stdout WRITE BLOCKS because the ConPTY buffer fills (drain not reading THIS pty) — explains alive-but-0-bytes; (c) ConPTY reader-park (KH 7.6) on this path; (d) `spt rc` resolve_session/subscribe for an endpoint-run session subscribes to the wrong/empty log. (v0.12.1)",
2026-06-21T08:16:00.2199266Z       "requiredStages": [
2026-06-21T08:16:00.2199498Z         "impl",
2026-06-21T08:16:00.2199713Z         "unit",
2026-06-21T08:16:00.2199922Z         "int"
2026-06-21T08:16:00.2200131Z       ],
2026-06-21T08:16:00.2200333Z       "stages": {
2026-06-21T08:16:00.2200537Z         "doc": {
2026-06-21T08:16:00.2200771Z           "complete": false,
2026-06-21T08:16:00.2201019Z           "evidence": []
2026-06-21T08:16:00.2201249Z         },
2026-06-21T08:16:00.2201443Z         "impl": {
2026-06-21T08:16:00.2201667Z           "complete": true,
2026-06-21T08:16:00.2201931Z           "evidence": [
2026-06-21T08:16:00.2202158Z             {
2026-06-21T08:16:00.2202448Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-21T08:16:00.2202730Z               "line": 106
2026-06-21T08:16:00.2202950Z             }
2026-06-21T08:16:00.2203150Z           ]
2026-06-21T08:16:00.2203344Z         },
2026-06-21T08:16:00.2203546Z         "int": {
2026-06-21T08:16:00.2203765Z           "complete": true,
2026-06-21T08:16:00.2204012Z           "evidence": [
2026-06-21T08:16:00.2204246Z             {
2026-06-21T08:16:00.2204507Z               "path": "crates/spt/tests/dummy_harness_e2e.rs",
2026-06-21T08:16:00.2204816Z               "line": 296
2026-06-21T08:16:00.2205043Z             }
2026-06-21T08:16:00.2205249Z           ]
2026-06-21T08:16:00.2205450Z         },
2026-06-21T08:16:00.2205654Z         "unit": {
2026-06-21T08:16:00.2205873Z           "complete": true,
2026-06-21T08:16:00.2206121Z           "evidence": [
2026-06-21T08:16:00.2206465Z             {
2026-06-21T08:16:00.2206713Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T08:16:00.2207104Z               "line": 464
2026-06-21T08:16:00.2207322Z             }
2026-06-21T08:16:00.2207519Z           ]
2026-06-21T08:16:00.2207716Z         }
2026-06-21T08:16:00.2207911Z       }
2026-06-21T08:16:00.2208107Z     },
2026-06-21T08:16:00.2208303Z     {
2026-06-21T08:16:00.2208521Z       "id": "REQ-HAZARD-ENV-SUBST",
2026-06-21T08:16:00.2212114Z       "title": "`spt endpoint run` HONORS manifest [env.<VAR>] direction=inject values (with {key} substitution) on the spt-hosted spawn. Today only the [session.self] command ARGV is {id}-substituted; the [env] inject value is NEITHER substituted NOR applied — manifest.schema.json promises EnvVar.value = 'Value to inject (with substitution)' but prepare_harness_spawn fills only argv and SpawnReq carries no env, so a [env.SPT_ENDPOINT_ID].value='{id}' arrives EMPTY. A FLAGLESS harness (bare `claude`, no argv slot for {id}) then routes the id via [env] → empty → SessionStart sees empty $SPT_ENDPOINT_ID → seeds-by-PPID instead of binding → ZERO perch → NO_PERCH (the actual wall-b bind blocker; perri hard-repro'd). SILENT failure (empty inject, no error). FIX (doyle ruled a): fill every [env] inject value from the SAME {key} catalog as argv/role (mirror F-009 TEMPLATE fill, whole-string fill_template for an env value), thread it through SpawnReq.env → the broker sets it on the spawned PTY child. Correctness fix — schema already promises it, NO manifest change, NO new binary. PAIRS with REQ-SEND-SPT-HOSTED to make endpoint run fully work. doyle F-013. (post-v0.10.0)",
2026-06-21T08:16:00.2215289Z       "requiredStages": [
2026-06-21T08:16:00.2215523Z         "impl",
2026-06-21T08:16:00.2215743Z         "unit",
2026-06-21T08:16:00.2215953Z         "int"
2026-06-21T08:16:00.2216162Z       ],
2026-06-21T08:16:00.2216362Z       "stages": {
2026-06-21T08:16:00.2216582Z         "doc": {
2026-06-21T08:16:00.2216810Z           "complete": false,
2026-06-21T08:16:00.2217097Z           "evidence": []
2026-06-21T08:16:00.2217325Z         },
2026-06-21T08:16:00.2217531Z         "impl": {
2026-06-21T08:16:00.2217772Z           "complete": true,
2026-06-21T08:16:00.2218018Z           "evidence": [
2026-06-21T08:16:00.2218233Z             {
2026-06-21T08:16:00.2218490Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T08:16:00.2218795Z               "line": 123
2026-06-21T08:16:00.2219076Z             },
2026-06-21T08:16:00.2219277Z             {
2026-06-21T08:16:00.2219521Z               "path": "crates/spt-term/src/pty.rs",
2026-06-21T08:16:00.2219803Z               "line": 134
2026-06-21T08:16:00.2220025Z             }
2026-06-21T08:16:00.2220235Z           ]
2026-06-21T08:16:00.2220439Z         },
2026-06-21T08:16:00.2220637Z         "int": {
2026-06-21T08:16:00.2220858Z           "complete": true,
2026-06-21T08:16:00.2221096Z           "evidence": [
2026-06-21T08:16:00.2221319Z             {
2026-06-21T08:16:00.2221577Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-21T08:16:00.2221878Z               "line": 312
2026-06-21T08:16:00.2222106Z             },
2026-06-21T08:16:00.2222311Z             {
2026-06-21T08:16:00.2222554Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-21T08:16:00.2222850Z               "line": 525
2026-06-21T08:16:00.2223084Z             }
2026-06-21T08:16:00.2223278Z           ]
2026-06-21T08:16:00.2223478Z         },
2026-06-21T08:16:00.2223679Z         "unit": {
2026-06-21T08:16:00.2223897Z           "complete": true,
2026-06-21T08:16:00.2224131Z           "evidence": [
2026-06-21T08:16:00.2224346Z             {
2026-06-21T08:16:00.2224605Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T08:16:00.2224910Z               "line": 250
2026-06-21T08:16:00.2225132Z             }
2026-06-21T08:16:00.2225333Z           ]
2026-06-21T08:16:00.2225523Z         }
2026-06-21T08:16:00.2225721Z       }
2026-06-21T08:16:00.2225926Z     },
2026-06-21T08:16:00.2226236Z     {
2026-06-21T08:16:00.2226474Z       "id": "REQ-HAZARD-ENVELOPE-CR-LINESAFE",
2026-06-21T08:16:00.2228399Z       "title": "Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\\n`→`<br>`) BEFORE framing, so a body carrying `\\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).",
2026-06-21T08:16:00.2230233Z       "requiredStages": [
2026-06-21T08:16:00.2230466Z         "impl",
2026-06-21T08:16:00.2230683Z         "unit"
2026-06-21T08:16:00.2230885Z       ],
2026-06-21T08:16:00.2231089Z       "stages": {
2026-06-21T08:16:00.2231302Z         "doc": {
2026-06-21T08:16:00.2231540Z           "complete": false,
2026-06-21T08:16:00.2231817Z           "evidence": []
2026-06-21T08:16:00.2232047Z         },
2026-06-21T08:16:00.2232271Z         "impl": {
2026-06-21T08:16:00.2232494Z           "complete": true,
2026-06-21T08:16:00.2232733Z           "evidence": [
2026-06-21T08:16:00.2232958Z             {
2026-06-21T08:16:00.2233221Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T08:16:00.2233521Z               "line": 31
2026-06-21T08:16:00.2233742Z             }
2026-06-21T08:16:00.2233948Z           ]
2026-06-21T08:16:00.2234147Z         },
2026-06-21T08:16:00.2234349Z         "int": {
2026-06-21T08:16:00.2234569Z           "complete": false,
2026-06-21T08:16:00.2234821Z           "evidence": []
2026-06-21T08:16:00.2235048Z         },
2026-06-21T08:16:00.2235259Z         "unit": {
2026-06-21T08:16:00.2235484Z           "complete": true,
2026-06-21T08:16:00.2235727Z           "evidence": [
2026-06-21T08:16:00.2235950Z             {
2026-06-21T08:16:00.2236215Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T08:16:00.2236510Z               "line": 181
2026-06-21T08:16:00.2236739Z             }
2026-06-21T08:16:00.2236938Z           ]
2026-06-21T08:16:00.2237149Z         }
2026-06-21T08:16:00.2237349Z       }
2026-06-21T08:16:00.2237559Z     },
2026-06-21T08:16:00.2237746Z     {
2026-06-21T08:16:00.2237988Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-21T08:16:00.2238346Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-21T08:16:00.2238685Z       "requiredStages": [
2026-06-21T08:16:00.2238916Z         "impl",
2026-06-21T08:16:00.2239210Z         "unit"
2026-06-21T08:16:00.2239416Z       ],
2026-06-21T08:16:00.2239625Z       "stages": {
2026-06-21T08:16:00.2239844Z         "doc": {
2026-06-21T08:16:00.2240078Z           "complete": false,
2026-06-21T08:16:00.2240331Z           "evidence": []
2026-06-21T08:16:00.2240565Z         },
2026-06-21T08:16:00.2240764Z         "impl": {
2026-06-21T08:16:00.2240994Z           "complete": true,
2026-06-21T08:16:00.2241243Z           "evidence": [
2026-06-21T08:16:00.2241464Z             {
2026-06-21T08:16:00.2241715Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T08:16:00.2242015Z               "line": 49
2026-06-21T08:16:00.2242240Z             },
2026-06-21T08:16:00.2242444Z             {
2026-06-21T08:16:00.2242711Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T08:16:00.2242993Z               "line": 81
2026-06-21T08:16:00.2243222Z             }
2026-06-21T08:16:00.2243422Z           ]
2026-06-21T08:16:00.2243617Z         },
2026-06-21T08:16:00.2243823Z         "int": {
2026-06-21T08:16:00.2244047Z           "complete": false,
2026-06-21T08:16:00.2244289Z           "evidence": []
2026-06-21T08:16:00.2244513Z         },
2026-06-21T08:16:00.2244712Z         "unit": {
2026-06-21T08:16:00.2244923Z           "complete": true,
2026-06-21T08:16:00.2245162Z           "evidence": [
2026-06-21T08:16:00.2245386Z             {
2026-06-21T08:16:00.2245739Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T08:16:00.2246035Z               "line": 156
2026-06-21T08:16:00.2246359Z             },
2026-06-21T08:16:00.2246567Z             {
2026-06-21T08:16:00.2246799Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T08:16:00.2247085Z               "line": 173
2026-06-21T08:16:00.2247308Z             },
2026-06-21T08:16:00.2247513Z             {
2026-06-21T08:16:00.2247757Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T08:16:00.2248119Z               "line": 196
2026-06-21T08:16:00.2248524Z             }
2026-06-21T08:16:00.2248858Z           ]
2026-06-21T08:16:00.2249274Z         }
2026-06-21T08:16:00.2249553Z       }
2026-06-21T08:16:00.2249885Z     },
2026-06-21T08:16:00.2250210Z     {
2026-06-21T08:16:00.2250609Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-21T08:16:00.2251239Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-21T08:16:00.2251760Z       "requiredStages": [
2026-06-21T08:16:00.2252125Z         "impl",
2026-06-21T08:16:00.2252456Z         "unit"
2026-06-21T08:16:00.2252772Z       ],
2026-06-21T08:16:00.2253100Z       "stages": {
2026-06-21T08:16:00.2253457Z         "doc": {
2026-06-21T08:16:00.2253791Z           "complete": false,
2026-06-21T08:16:00.2254163Z           "evidence": []
2026-06-21T08:16:00.2254501Z         },
2026-06-21T08:16:00.2254815Z         "impl": {
2026-06-21T08:16:00.2255187Z           "complete": true,
2026-06-21T08:16:00.2255558Z           "evidence": [
2026-06-21T08:16:00.2255873Z             {
2026-06-21T08:16:00.2256251Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T08:16:00.2256732Z               "line": 120
2026-06-21T08:16:00.2257065Z             }
2026-06-21T08:16:00.2257387Z           ]
2026-06-21T08:16:00.2257716Z         },
2026-06-21T08:16:00.2258040Z         "int": {
2026-06-21T08:16:00.2258383Z           "complete": false,
2026-06-21T08:16:00.2258698Z           "evidence": []
2026-06-21T08:16:00.2259022Z         },
2026-06-21T08:16:00.2259233Z         "unit": {
2026-06-21T08:16:00.2259471Z           "complete": true,
2026-06-21T08:16:00.2259719Z           "evidence": [
2026-06-21T08:16:00.2259937Z             {
2026-06-21T08:16:00.2260194Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T08:16:00.2260497Z               "line": 212
2026-06-21T08:16:00.2260726Z             },
2026-06-21T08:16:00.2260940Z             {
2026-06-21T08:16:00.2261094Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T08:16:00.2261204Z               "line": 221
2026-06-21T08:16:00.2261317Z             },
2026-06-21T08:16:00.2261418Z             {
2026-06-21T08:16:00.2261570Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T08:16:00.2261690Z               "line": 229
2026-06-21T08:16:00.2261794Z             },
2026-06-21T08:16:00.2261908Z             {
2026-06-21T08:16:00.2262053Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T08:16:00.2262175Z               "line": 239
2026-06-21T08:16:00.2262281Z             },
2026-06-21T08:16:00.2262387Z             {
2026-06-21T08:16:00.2262551Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T08:16:00.2262660Z               "line": 249
2026-06-21T08:16:00.2262774Z             }
2026-06-21T08:16:00.2262878Z           ]
2026-06-21T08:16:00.2262982Z         }
2026-06-21T08:16:00.2263089Z       }
2026-06-21T08:16:00.2263187Z     },
2026-06-21T08:16:00.2263297Z     {
2026-06-21T08:16:00.2263436Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-21T08:16:00.2263632Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-21T08:16:00.2263756Z       "requiredStages": [
2026-06-21T08:16:00.2263865Z         "impl",
2026-06-21T08:16:00.2263985Z         "unit"
2026-06-21T08:16:00.2264089Z       ],
2026-06-21T08:16:00.2264203Z       "stages": {
2026-06-21T08:16:00.2264305Z         "doc": {
2026-06-21T08:16:00.2264432Z           "complete": false,
2026-06-21T08:16:00.2264732Z           "evidence": []
2026-06-21T08:16:00.2264837Z         },
2026-06-21T08:16:00.2264953Z         "impl": {
2026-06-21T08:16:00.2265167Z           "complete": true,
2026-06-21T08:16:00.2265287Z           "evidence": [
2026-06-21T08:16:00.2265395Z             {
2026-06-21T08:16:00.2265542Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-21T08:16:00.2265653Z               "line": 14
2026-06-21T08:16:00.2265766Z             },
2026-06-21T08:16:00.2265872Z             {
2026-06-21T08:16:00.2266005Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-21T08:16:00.2266123Z               "line": 63
2026-06-21T08:16:00.2266225Z             }
2026-06-21T08:16:00.2266334Z           ]
2026-06-21T08:16:00.2266438Z         },
2026-06-21T08:16:00.2266549Z         "int": {
2026-06-21T08:16:00.2266668Z           "complete": false,
2026-06-21T08:16:00.2266787Z           "evidence": []
2026-06-21T08:16:00.2266897Z         },
2026-06-21T08:16:00.2267006Z         "unit": {
2026-06-21T08:16:00.2267126Z           "complete": true,
2026-06-21T08:16:00.2267231Z           "evidence": [
2026-06-21T08:16:00.2267340Z             {
2026-06-21T08:16:00.2267489Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-21T08:16:00.2267597Z               "line": 164
2026-06-21T08:16:00.2267711Z             },
2026-06-21T08:16:00.2267811Z             {
2026-06-21T08:16:00.2267947Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-21T08:16:00.2268056Z               "line": 198
2026-06-21T08:16:00.2268167Z             },
2026-06-21T08:16:00.2268267Z             {
2026-06-21T08:16:00.2268395Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-21T08:16:00.2268501Z               "line": 220
2026-06-21T08:16:00.2268605Z             }
2026-06-21T08:16:00.2268719Z           ]
2026-06-21T08:16:00.2268825Z         }
2026-06-21T08:16:00.2268929Z       }
2026-06-21T08:16:00.2269125Z     },
2026-06-21T08:16:00.2269230Z     {
2026-06-21T08:16:00.2269363Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-21T08:16:00.2270768Z       "title": "Advertisement-epoch reset strands a node: peers' higher last-seen epoch drops the reset node's fresh advertisements as Stale until the counter outruns history. Common case (full reinstall/re-pair) is mitigated by REQ-SUBNET-7's ceremony eviction (peer-side epoch memory dies with the deleted row — acceptance-verified); the residual narrow slice (epoch file lost, identity kept) is documented, guard deferred to a field hit (4.11)",
2026-06-21T08:16:00.2270904Z       "requiredStages": [],
2026-06-21T08:16:00.2271024Z       "stages": {
2026-06-21T08:16:00.2271120Z         "doc": {
2026-06-21T08:16:00.2271238Z           "complete": true,
2026-06-21T08:16:00.2271354Z           "evidence": [
2026-06-21T08:16:00.2271463Z             {
2026-06-21T08:16:00.2271601Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.2271716Z               "line": 165
2026-06-21T08:16:00.2271820Z             }
2026-06-21T08:16:00.2271925Z           ]
2026-06-21T08:16:00.2272035Z         },
2026-06-21T08:16:00.2272163Z         "impl": {
2026-06-21T08:16:00.2272298Z           "complete": false,
2026-06-21T08:16:00.2272430Z           "evidence": []
2026-06-21T08:16:00.2272540Z         },
2026-06-21T08:16:00.2272651Z         "int": {
2026-06-21T08:16:00.2272754Z           "complete": false,
2026-06-21T08:16:00.2272870Z           "evidence": []
2026-06-21T08:16:00.2272980Z         },
2026-06-21T08:16:00.2273092Z         "unit": {
2026-06-21T08:16:00.2273207Z           "complete": false,
2026-06-21T08:16:00.2273325Z           "evidence": []
2026-06-21T08:16:00.2273433Z         }
2026-06-21T08:16:00.2277467Z       }
2026-06-21T08:16:00.2277609Z     },
2026-06-21T08:16:00.2277711Z     {
2026-06-21T08:16:00.2277876Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-21T08:16:00.2278138Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-21T08:16:00.2278271Z       "requiredStages": [
2026-06-21T08:16:00.2278390Z         "impl",
2026-06-21T08:16:00.2278650Z         "unit"
2026-06-21T08:16:00.2278761Z       ],
2026-06-21T08:16:00.2278869Z       "stages": {
2026-06-21T08:16:00.2279337Z         "doc": {
2026-06-21T08:16:00.2279518Z           "complete": false,
2026-06-21T08:16:00.2279648Z           "evidence": []
2026-06-21T08:16:00.2279761Z         },
2026-06-21T08:16:00.2279875Z         "impl": {
2026-06-21T08:16:00.2280000Z           "complete": true,
2026-06-21T08:16:00.2280114Z           "evidence": [
2026-06-21T08:16:00.2280229Z             {
2026-06-21T08:16:00.2280381Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-21T08:16:00.2280491Z               "line": 76
2026-06-21T08:16:00.2280592Z             },
2026-06-21T08:16:00.2280705Z             {
2026-06-21T08:16:00.2280868Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-21T08:16:00.2280983Z               "line": 167
2026-06-21T08:16:00.2281086Z             },
2026-06-21T08:16:00.2281195Z             {
2026-06-21T08:16:00.2281351Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-21T08:16:00.2281479Z               "line": 233
2026-06-21T08:16:00.2281579Z             },
2026-06-21T08:16:00.2281694Z             {
2026-06-21T08:16:00.2281841Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-21T08:16:00.2281947Z               "line": 272
2026-06-21T08:16:00.2282046Z             }
2026-06-21T08:16:00.2282151Z           ]
2026-06-21T08:16:00.2282257Z         },
2026-06-21T08:16:00.2282361Z         "int": {
2026-06-21T08:16:00.2282480Z           "complete": false,
2026-06-21T08:16:00.2282591Z           "evidence": []
2026-06-21T08:16:00.2282700Z         },
2026-06-21T08:16:00.2282805Z         "unit": {
2026-06-21T08:16:00.2282934Z           "complete": true,
2026-06-21T08:16:00.2283038Z           "evidence": [
2026-06-21T08:16:00.2283140Z             {
2026-06-21T08:16:00.2283281Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-21T08:16:00.2283386Z               "line": 321
2026-06-21T08:16:00.2283497Z             },
2026-06-21T08:16:00.2283610Z             {
2026-06-21T08:16:00.2283757Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-21T08:16:00.2283876Z               "line": 329
2026-06-21T08:16:00.2283984Z             },
2026-06-21T08:16:00.2284094Z             {
2026-06-21T08:16:00.2284242Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-21T08:16:00.2284355Z               "line": 356
2026-06-21T08:16:00.2284466Z             },
2026-06-21T08:16:00.2284562Z             {
2026-06-21T08:16:00.2284713Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-21T08:16:00.2284819Z               "line": 395
2026-06-21T08:16:00.2284923Z             },
2026-06-21T08:16:00.2285023Z             {
2026-06-21T08:16:00.2285176Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-21T08:16:00.2285295Z               "line": 406
2026-06-21T08:16:00.2285396Z             },
2026-06-21T08:16:00.2285504Z             {
2026-06-21T08:16:00.2285648Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-21T08:16:00.2285778Z               "line": 418
2026-06-21T08:16:00.2285882Z             },
2026-06-21T08:16:00.2285992Z             {
2026-06-21T08:16:00.2286148Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-21T08:16:00.2286263Z               "line": 442
2026-06-21T08:16:00.2286369Z             }
2026-06-21T08:16:00.2286472Z           ]
2026-06-21T08:16:00.2286586Z         }
2026-06-21T08:16:00.2286691Z       }
2026-06-21T08:16:00.2286801Z     },
2026-06-21T08:16:00.2286896Z     {
2026-06-21T08:16:00.2287035Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-21T08:16:00.2287225Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-21T08:16:00.2287341Z       "requiredStages": [
2026-06-21T08:16:00.2287450Z         "impl",
2026-06-21T08:16:00.2287554Z         "int"
2026-06-21T08:16:00.2287665Z       ],
2026-06-21T08:16:00.2287783Z       "stages": {
2026-06-21T08:16:00.2287883Z         "doc": {
2026-06-21T08:16:00.2288003Z           "complete": false,
2026-06-21T08:16:00.2288103Z           "evidence": []
2026-06-21T08:16:00.2288407Z         },
2026-06-21T08:16:00.2288517Z         "impl": {
2026-06-21T08:16:00.2288769Z           "complete": true,
2026-06-21T08:16:00.2288879Z           "evidence": [
2026-06-21T08:16:00.2289062Z             {
2026-06-21T08:16:00.2289215Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.2289326Z               "line": 22
2026-06-21T08:16:00.2289434Z             }
2026-06-21T08:16:00.2289549Z           ]
2026-06-21T08:16:00.2289659Z         },
2026-06-21T08:16:00.2289768Z         "int": {
2026-06-21T08:16:00.2289884Z           "complete": true,
2026-06-21T08:16:00.2289997Z           "evidence": [
2026-06-21T08:16:00.2290097Z             {
2026-06-21T08:16:00.2290241Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-21T08:16:00.2290350Z               "line": 18
2026-06-21T08:16:00.2290459Z             }
2026-06-21T08:16:00.2290565Z           ]
2026-06-21T08:16:00.2290665Z         },
2026-06-21T08:16:00.2290779Z         "unit": {
2026-06-21T08:16:00.2290903Z           "complete": false,
2026-06-21T08:16:00.2291018Z           "evidence": []
2026-06-21T08:16:00.2291128Z         }
2026-06-21T08:16:00.2291237Z       }
2026-06-21T08:16:00.2291332Z     },
2026-06-21T08:16:00.2291438Z     {
2026-06-21T08:16:00.2291585Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-21T08:16:00.2291803Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-21T08:16:00.2291925Z       "requiredStages": [
2026-06-21T08:16:00.2292034Z         "impl",
2026-06-21T08:16:00.2292135Z         "unit"
2026-06-21T08:16:00.2292231Z       ],
2026-06-21T08:16:00.2292339Z       "stages": {
2026-06-21T08:16:00.2292450Z         "doc": {
2026-06-21T08:16:00.2292569Z           "complete": false,
2026-06-21T08:16:00.2292687Z           "evidence": []
2026-06-21T08:16:00.2292793Z         },
2026-06-21T08:16:00.2292912Z         "impl": {
2026-06-21T08:16:00.2293031Z           "complete": true,
2026-06-21T08:16:00.2293146Z           "evidence": [
2026-06-21T08:16:00.2293260Z             {
2026-06-21T08:16:00.2293418Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.2293545Z               "line": 465
2026-06-21T08:16:00.2293651Z             },
2026-06-21T08:16:00.2293757Z             {
2026-06-21T08:16:00.2293904Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-21T08:16:00.2294010Z               "line": 27
2026-06-21T08:16:00.2294119Z             }
2026-06-21T08:16:00.2294217Z           ]
2026-06-21T08:16:00.2294322Z         },
2026-06-21T08:16:00.2294422Z         "int": {
2026-06-21T08:16:00.2294544Z           "complete": false,
2026-06-21T08:16:00.2294663Z           "evidence": []
2026-06-21T08:16:00.2294774Z         },
2026-06-21T08:16:00.2294882Z         "unit": {
2026-06-21T08:16:00.2294983Z           "complete": true,
2026-06-21T08:16:00.2295097Z           "evidence": [
2026-06-21T08:16:00.2295201Z             {
2026-06-21T08:16:00.2295346Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.2295464Z               "line": 990
2026-06-21T08:16:00.2295569Z             },
2026-06-21T08:16:00.2295684Z             {
2026-06-21T08:16:00.2295836Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-21T08:16:00.2295956Z               "line": 181
2026-06-21T08:16:00.2296051Z             }
2026-06-21T08:16:00.2296165Z           ]
2026-06-21T08:16:00.2296266Z         }
2026-06-21T08:16:00.2296375Z       }
2026-06-21T08:16:00.2296479Z     },
2026-06-21T08:16:00.2296581Z     {
2026-06-21T08:16:00.2296732Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-21T08:16:00.2296915Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-21T08:16:00.2297038Z       "requiredStages": [
2026-06-21T08:16:00.2297146Z         "impl",
2026-06-21T08:16:00.2297251Z         "unit"
2026-06-21T08:16:00.2297362Z       ],
2026-06-21T08:16:00.2297466Z       "stages": {
2026-06-21T08:16:00.2297571Z         "doc": {
2026-06-21T08:16:00.2297681Z           "complete": false,
2026-06-21T08:16:00.2297915Z           "evidence": []
2026-06-21T08:16:00.2298024Z         },
2026-06-21T08:16:00.2298220Z         "impl": {
2026-06-21T08:16:00.2298344Z           "complete": true,
2026-06-21T08:16:00.2298443Z           "evidence": [
2026-06-21T08:16:00.2298554Z             {
2026-06-21T08:16:00.2298700Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.2298816Z               "line": 73
2026-06-21T08:16:00.2298925Z             },
2026-06-21T08:16:00.2299116Z             {
2026-06-21T08:16:00.2299263Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.2299367Z               "line": 972
2026-06-21T08:16:00.2299477Z             },
2026-06-21T08:16:00.2299580Z             {
2026-06-21T08:16:00.2299731Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-21T08:16:00.2299837Z               "line": 20
2026-06-21T08:16:00.2299932Z             },
2026-06-21T08:16:00.2300032Z             {
2026-06-21T08:16:00.2300181Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-21T08:16:00.2300294Z               "line": 100
2026-06-21T08:16:00.2300405Z             },
2026-06-21T08:16:00.2300510Z             {
2026-06-21T08:16:00.2300652Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T08:16:00.2300768Z               "line": 603
2026-06-21T08:16:00.2300867Z             },
2026-06-21T08:16:00.2300972Z             {
2026-06-21T08:16:00.2301134Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-21T08:16:00.2301234Z               "line": 68
2026-06-21T08:16:00.2301344Z             },
2026-06-21T08:16:00.2301449Z             {
2026-06-21T08:16:00.2301601Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-21T08:16:00.2301717Z               "line": 80
2026-06-21T08:16:00.2301820Z             }
2026-06-21T08:16:00.2301921Z           ]
2026-06-21T08:16:00.2302022Z         },
2026-06-21T08:16:00.2302135Z         "int": {
2026-06-21T08:16:00.2302258Z           "complete": true,
2026-06-21T08:16:00.2302373Z           "evidence": [
2026-06-21T08:16:00.2302485Z             {
2026-06-21T08:16:00.2302628Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-21T08:16:00.2302743Z               "line": 44
2026-06-21T08:16:00.2302847Z             }
2026-06-21T08:16:00.2302957Z           ]
2026-06-21T08:16:00.2303067Z         },
2026-06-21T08:16:00.2303162Z         "unit": {
2026-06-21T08:16:00.2303281Z           "complete": true,
2026-06-21T08:16:00.2303396Z           "evidence": [
2026-06-21T08:16:00.2303505Z             {
2026-06-21T08:16:00.2303649Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.2303768Z               "line": 1181
2026-06-21T08:16:00.2303877Z             },
2026-06-21T08:16:00.2303969Z             {
2026-06-21T08:16:00.2304120Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.2304240Z               "line": 1197
2026-06-21T08:16:00.2304345Z             },
2026-06-21T08:16:00.2304449Z             {
2026-06-21T08:16:00.2304599Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.2304712Z               "line": 2399
2026-06-21T08:16:00.2304815Z             },
2026-06-21T08:16:00.2304925Z             {
2026-06-21T08:16:00.2305066Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-21T08:16:00.2305189Z               "line": 152
2026-06-21T08:16:00.2305296Z             },
2026-06-21T08:16:00.2305395Z             {
2026-06-21T08:16:00.2305543Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-21T08:16:00.2305648Z               "line": 175
2026-06-21T08:16:00.2305752Z             },
2026-06-21T08:16:00.2305853Z             {
2026-06-21T08:16:00.2306006Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-21T08:16:00.2306124Z               "line": 186
2026-06-21T08:16:00.2306225Z             },
2026-06-21T08:16:00.2306339Z             {
2026-06-21T08:16:00.2306477Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-21T08:16:00.2306692Z               "line": 202
2026-06-21T08:16:00.2306792Z             },
2026-06-21T08:16:00.2306898Z             {
2026-06-21T08:16:00.2307137Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-21T08:16:00.2307245Z               "line": 216
2026-06-21T08:16:00.2307355Z             },
2026-06-21T08:16:00.2307461Z             {
2026-06-21T08:16:00.2307607Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-21T08:16:00.2307711Z               "line": 137
2026-06-21T08:16:00.2307821Z             },
2026-06-21T08:16:00.2307927Z             {
2026-06-21T08:16:00.2308059Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2308170Z               "line": 8152
2026-06-21T08:16:00.2308274Z             },
2026-06-21T08:16:00.2308388Z             {
2026-06-21T08:16:00.2308531Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-21T08:16:00.2308645Z               "line": 30
2026-06-21T08:16:00.2308751Z             },
2026-06-21T08:16:00.2308856Z             {
2026-06-21T08:16:00.2309085Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-21T08:16:00.2309189Z               "line": 73
2026-06-21T08:16:00.2309308Z             }
2026-06-21T08:16:00.2309400Z           ]
2026-06-21T08:16:00.2309509Z         }
2026-06-21T08:16:00.2309609Z       }
2026-06-21T08:16:00.2309705Z     },
2026-06-21T08:16:00.2309805Z     {
2026-06-21T08:16:00.2309951Z       "id": "REQ-HAZARD-HOSTED-LIVENESS-RECONCILE",
2026-06-21T08:16:00.2314070Z       "title": "B2 KEYSTONE: a daemon-hosted (spt-hosted) endpoint's info.json status is RECONCILED to real liveness, not left latched online. The broker exit-waiter (broker.rs:889-910) reaps its in-mem session table + emits ExitEvent but NEVER touches info.json; lifecycle::mark_offline only fires on Psyche teardown — so a dead/exited harness (operator closed the tab) stays status=online forever (is_perch_alive returns ONLINE for daemon-hosted, liveness.rs:80-93). FIX (doyle ruled PULL-PRIMARY — the live-status analog of REQ-HAZARD-ROSTER-GHOST): the livehost reconcile loop (reconcile_once livehost.rs:226-313) queries the broker's live session set (KIND_SESSIONS) each tick and, for any status=online live_agent perch PAST the boot grace whose endpoint has NO live broker session, marks it offline (lifecycle::mark_offline → status=offline → is_perch_alive=false). GATED on spt-hosted (controllable==Some(true)) so a HARNESS-HOSTED relay live agent (api listen, legitimately online with no broker session) is NEVER mis-marked. Crash-robust + self-healing on the next tick (clear-on-event is not crash-robust alone). PUSH (brain ExitEvent→mark_offline) is an OPTIONAL fast-path only if the daemon brain is reliably subscribed to all hosted sessions; correctness rides the pull. Broker stays stateless (ADR-0004 §B — brain owns the info.json write). (v0.12.0)",
2026-06-21T08:16:00.2314242Z       "requiredStages": [
2026-06-21T08:16:00.2314352Z         "impl",
2026-06-21T08:16:00.2314451Z         "unit",
2026-06-21T08:16:00.2314557Z         "int"
2026-06-21T08:16:00.2314680Z       ],
2026-06-21T08:16:00.2314786Z       "stages": {
2026-06-21T08:16:00.2314891Z         "doc": {
2026-06-21T08:16:00.2315038Z           "complete": false,
2026-06-21T08:16:00.2315154Z           "evidence": []
2026-06-21T08:16:00.2315258Z         },
2026-06-21T08:16:00.2315366Z         "impl": {
2026-06-21T08:16:00.2315486Z           "complete": true,
2026-06-21T08:16:00.2315593Z           "evidence": [
2026-06-21T08:16:00.2315692Z             {
2026-06-21T08:16:00.2315851Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2315970Z               "line": 510
2026-06-21T08:16:00.2316070Z             },
2026-06-21T08:16:00.2316175Z             {
2026-06-21T08:16:00.2316331Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2316442Z               "line": 704
2026-06-21T08:16:00.2316556Z             }
2026-06-21T08:16:00.2316660Z           ]
2026-06-21T08:16:00.2316767Z         },
2026-06-21T08:16:00.2316880Z         "int": {
2026-06-21T08:16:00.2317105Z           "complete": true,
2026-06-21T08:16:00.2317228Z           "evidence": [
2026-06-21T08:16:00.2317328Z             {
2026-06-21T08:16:00.2317572Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2317682Z               "line": 1119
2026-06-21T08:16:00.2317791Z             },
2026-06-21T08:16:00.2317896Z             {
2026-06-21T08:16:00.2318054Z               "path": "crates/spt/tests/attach_wedge_e2e.rs",
2026-06-21T08:16:00.2318162Z               "line": 312
2026-06-21T08:16:00.2318261Z             }
2026-06-21T08:16:00.2318367Z           ]
2026-06-21T08:16:00.2318468Z         },
2026-06-21T08:16:00.2318576Z         "unit": {
2026-06-21T08:16:00.2318696Z           "complete": true,
2026-06-21T08:16:00.2318797Z           "evidence": [
2026-06-21T08:16:00.2318900Z             {
2026-06-21T08:16:00.2319154Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2319273Z               "line": 821
2026-06-21T08:16:00.2319369Z             }
2026-06-21T08:16:00.2319478Z           ]
2026-06-21T08:16:00.2319583Z         }
2026-06-21T08:16:00.2319688Z       }
2026-06-21T08:16:00.2319803Z     },
2026-06-21T08:16:00.2319898Z     {
2026-06-21T08:16:00.2320032Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-21T08:16:00.2320318Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-21T08:16:00.2320440Z       "requiredStages": [
2026-06-21T08:16:00.2320544Z         "impl",
2026-06-21T08:16:00.2320659Z         "unit"
2026-06-21T08:16:00.2320762Z       ],
2026-06-21T08:16:00.2320871Z       "stages": {
2026-06-21T08:16:00.2320977Z         "doc": {
2026-06-21T08:16:00.2321086Z           "complete": true,
2026-06-21T08:16:00.2321200Z           "evidence": [
2026-06-21T08:16:00.2321315Z             {
2026-06-21T08:16:00.2321448Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.2321564Z               "line": 133
2026-06-21T08:16:00.2321668Z             }
2026-06-21T08:16:00.2321772Z           ]
2026-06-21T08:16:00.2321878Z         },
2026-06-21T08:16:00.2321983Z         "impl": {
2026-06-21T08:16:00.2322106Z           "complete": true,
2026-06-21T08:16:00.2322217Z           "evidence": [
2026-06-21T08:16:00.2322316Z             {
2026-06-21T08:16:00.2322450Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T08:16:00.2322570Z               "line": 65
2026-06-21T08:16:00.2322669Z             },
2026-06-21T08:16:00.2322779Z             {
2026-06-21T08:16:00.2322927Z               "path": "crates/spt-proto/src/id.rs",
2026-06-21T08:16:00.2323041Z               "line": 17
2026-06-21T08:16:00.2323147Z             },
2026-06-21T08:16:00.2323237Z             {
2026-06-21T08:16:00.2323392Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T08:16:00.2323507Z               "line": 146
2026-06-21T08:16:00.2323615Z             },
2026-06-21T08:16:00.2323714Z             {
2026-06-21T08:16:00.2323854Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.2323972Z               "line": 310
2026-06-21T08:16:00.2324077Z             },
2026-06-21T08:16:00.2324187Z             {
2026-06-21T08:16:00.2324339Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.2324455Z               "line": 441
2026-06-21T08:16:00.2324564Z             },
2026-06-21T08:16:00.2324668Z             {
2026-06-21T08:16:00.2324812Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T08:16:00.2324916Z               "line": 32
2026-06-21T08:16:00.2325026Z             },
2026-06-21T08:16:00.2325132Z             {
2026-06-21T08:16:00.2325269Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2325385Z               "line": 1283
2026-06-21T08:16:00.2325493Z             },
2026-06-21T08:16:00.2325598Z             {
2026-06-21T08:16:00.2325724Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2325841Z               "line": 6161
2026-06-21T08:16:00.2325945Z             },
2026-06-21T08:16:00.2326050Z             {
2026-06-21T08:16:00.2326281Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2326382Z               "line": 6443
2026-06-21T08:16:00.2326600Z             }
2026-06-21T08:16:00.2326706Z           ]
2026-06-21T08:16:00.2326811Z         },
2026-06-21T08:16:00.2326920Z         "int": {
2026-06-21T08:16:00.2327045Z           "complete": false,
2026-06-21T08:16:00.2327154Z           "evidence": []
2026-06-21T08:16:00.2327259Z         },
2026-06-21T08:16:00.2327369Z         "unit": {
2026-06-21T08:16:00.2327474Z           "complete": true,
2026-06-21T08:16:00.2327583Z           "evidence": [
2026-06-21T08:16:00.2327689Z             {
2026-06-21T08:16:00.2327831Z               "path": "crates/spt-proto/src/id.rs",
2026-06-21T08:16:00.2327932Z               "line": 94
2026-06-21T08:16:00.2328027Z             },
2026-06-21T08:16:00.2328127Z             {
2026-06-21T08:16:00.2328257Z               "path": "crates/spt-proto/src/id.rs",
2026-06-21T08:16:00.2328365Z               "line": 111
2026-06-21T08:16:00.2328490Z             },
2026-06-21T08:16:00.2328596Z             {
2026-06-21T08:16:00.2328741Z               "path": "crates/spt-proto/src/id.rs",
2026-06-21T08:16:00.2328850Z               "line": 124
2026-06-21T08:16:00.2329037Z             },
2026-06-21T08:16:00.2329141Z             {
2026-06-21T08:16:00.2329276Z               "path": "crates/spt-proto/src/id.rs",
2026-06-21T08:16:00.2329390Z               "line": 134
2026-06-21T08:16:00.2329489Z             },
2026-06-21T08:16:00.2329590Z             {
2026-06-21T08:16:00.2329719Z               "path": "crates/spt-proto/src/id.rs",
2026-06-21T08:16:00.2329828Z               "line": 144
2026-06-21T08:16:00.2329929Z             },
2026-06-21T08:16:00.2330038Z             {
2026-06-21T08:16:00.2330177Z               "path": "crates/spt-proto/src/id.rs",
2026-06-21T08:16:00.2330272Z               "line": 156
2026-06-21T08:16:00.2330386Z             },
2026-06-21T08:16:00.2330487Z             {
2026-06-21T08:16:00.2330653Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.2330763Z               "line": 746
2026-06-21T08:16:00.2330864Z             },
2026-06-21T08:16:00.2330963Z             {
2026-06-21T08:16:00.2331109Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T08:16:00.2331229Z               "line": 309
2026-06-21T08:16:00.2331331Z             }
2026-06-21T08:16:00.2331441Z           ]
2026-06-21T08:16:00.2331542Z         }
2026-06-21T08:16:00.2331651Z       }
2026-06-21T08:16:00.2331756Z     },
2026-06-21T08:16:00.2331857Z     {
2026-06-21T08:16:00.2331994Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-21T08:16:00.2332157Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-21T08:16:00.2332276Z       "requiredStages": [
2026-06-21T08:16:00.2332390Z         "impl",
2026-06-21T08:16:00.2332505Z         "unit"
2026-06-21T08:16:00.2332610Z       ],
2026-06-21T08:16:00.2332719Z       "stages": {
2026-06-21T08:16:00.2332825Z         "doc": {
2026-06-21T08:16:00.2332943Z           "complete": false,
2026-06-21T08:16:00.2333068Z           "evidence": []
2026-06-21T08:16:00.2333172Z         },
2026-06-21T08:16:00.2333286Z         "impl": {
2026-06-21T08:16:00.2333402Z           "complete": true,
2026-06-21T08:16:00.2333520Z           "evidence": [
2026-06-21T08:16:00.2333630Z             {
2026-06-21T08:16:00.2333779Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T08:16:00.2333891Z               "line": 128
2026-06-21T08:16:00.2333996Z             }
2026-06-21T08:16:00.2334105Z           ]
2026-06-21T08:16:00.2334218Z         },
2026-06-21T08:16:00.2334323Z         "int": {
2026-06-21T08:16:00.2334447Z           "complete": false,
2026-06-21T08:16:00.2334561Z           "evidence": []
2026-06-21T08:16:00.2334671Z         },
2026-06-21T08:16:00.2334781Z         "unit": {
2026-06-21T08:16:00.2334904Z           "complete": true,
2026-06-21T08:16:00.2335015Z           "evidence": [
2026-06-21T08:16:00.2335125Z             {
2026-06-21T08:16:00.2335257Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T08:16:00.2335477Z               "line": 205
2026-06-21T08:16:00.2335581Z             }
2026-06-21T08:16:00.2335776Z           ]
2026-06-21T08:16:00.2335887Z         }
2026-06-21T08:16:00.2335993Z       }
2026-06-21T08:16:00.2336096Z     },
2026-06-21T08:16:00.2336206Z     {
2026-06-21T08:16:00.2336341Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-21T08:16:00.2336524Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-21T08:16:00.2336634Z       "requiredStages": [
2026-06-21T08:16:00.2336751Z         "impl",
2026-06-21T08:16:00.2336865Z         "unit"
2026-06-21T08:16:00.2336966Z       ],
2026-06-21T08:16:00.2337080Z       "stages": {
2026-06-21T08:16:00.2337185Z         "doc": {
2026-06-21T08:16:00.2337300Z           "complete": false,
2026-06-21T08:16:00.2337404Z           "evidence": []
2026-06-21T08:16:00.2337514Z         },
2026-06-21T08:16:00.2337624Z         "impl": {
2026-06-21T08:16:00.2337742Z           "complete": true,
2026-06-21T08:16:00.2337863Z           "evidence": [
2026-06-21T08:16:00.2337967Z             {
2026-06-21T08:16:00.2338114Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.2338230Z               "line": 367
2026-06-21T08:16:00.2338334Z             },
2026-06-21T08:16:00.2338448Z             {
2026-06-21T08:16:00.2338587Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.2338706Z               "line": 378
2026-06-21T08:16:00.2338802Z             },
2026-06-21T08:16:00.2338911Z             {
2026-06-21T08:16:00.2339108Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.2339217Z               "line": 396
2026-06-21T08:16:00.2339335Z             }
2026-06-21T08:16:00.2339439Z           ]
2026-06-21T08:16:00.2339550Z         },
2026-06-21T08:16:00.2339659Z         "int": {
2026-06-21T08:16:00.2339778Z           "complete": false,
2026-06-21T08:16:00.2339883Z           "evidence": []
2026-06-21T08:16:00.2339997Z         },
2026-06-21T08:16:00.2340118Z         "unit": {
2026-06-21T08:16:00.2340236Z           "complete": true,
2026-06-21T08:16:00.2340354Z           "evidence": [
2026-06-21T08:16:00.2340456Z             {
2026-06-21T08:16:00.2340598Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.2340713Z               "line": 420
2026-06-21T08:16:00.2340818Z             },
2026-06-21T08:16:00.2340932Z             {
2026-06-21T08:16:00.2341062Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.2341175Z               "line": 441
2026-06-21T08:16:00.2341275Z             },
2026-06-21T08:16:00.2341381Z             {
2026-06-21T08:16:00.2341518Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.2341637Z               "line": 811
2026-06-21T08:16:00.2341746Z             },
2026-06-21T08:16:00.2341849Z             {
2026-06-21T08:16:00.2341987Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.2342093Z               "line": 822
2026-06-21T08:16:00.2342202Z             },
2026-06-21T08:16:00.2342311Z             {
2026-06-21T08:16:00.2342441Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.2342563Z               "line": 835
2026-06-21T08:16:00.2342665Z             }
2026-06-21T08:16:00.2342769Z           ]
2026-06-21T08:16:00.2342874Z         }
2026-06-21T08:16:00.2342985Z       }
2026-06-21T08:16:00.2343084Z     },
2026-06-21T08:16:00.2343198Z     {
2026-06-21T08:16:00.2343351Z       "id": "REQ-HAZARD-INJECT-CONTROL-COEXIST",
2026-06-21T08:16:00.2350857Z       "title": "SPINE INVARIANT (v0.13.0 keystone): the broker must accept INJECTED keystrokes into an spt-hosted PTY (the v0.11.0 raw direct-inject today; the ADR-0022 translation-binary choreography tomorrow) WHILE a live `spt rc` controller is attached to the SAME PTY, without (a) the operator losing control, (b) the endpoint latching ONLINE+CONTROLLED, or (c) the broker wedging. The injection inlet is PERMANENT — spt-claude-code requires keystroke injection — so this is root-caused + fixed at the PTY-injection layer, IN STEP with the ADR-0022 delivery redesign that formalizes the inlet. REOPENS the wedge facet of REQ-HAZARD-ATTACH-WEDGE: the v0.12.1 prove-don't-change covered only DEAD-CHILD backpressure, NOT the injection trigger (operator's signal — one injected keystroke succeeds, the next wedges → the single-threaded broker parks on a blocking PTY/loopback write after injection-induced harness output). REPRO-FIRST on the real dummy-harness fixture (NO theory): instrument to nail the exact blocking call before any fix. Fix candidates: non-blocking/fail-fast PTY write, split input/output, bounded-evicting. Mechanism shared with W2 — spt-core owns EVERY PTY write and applies an injected sequence ATOMICALLY (controller input buffered during the sequence, flushed after) so a stash/restore can't be clobbered. CONFIRMED ROOT (doyle /diagnose 2026-06-19, code-grounded): Broker::append (broker.rs:205-227) fans each live output chunk to the CONTROLLER on a SYNCHRONOUS BLOCKING write_frame held inline in the session's drain thread (the 'authoritative, advances delivered_through' path, D4-1), while VIEWERS use a dedicated writer thread + bounded evicting sync_channel (add_viewer:273 / viewer_writer) that can never stall the drain. So a slow/backed-up controller socket — or the full 64KB loopback duplex (the ATTACH-WEDGE buffer) — BLOCKS the drain thread → output stalls → keystroke echoes stall (PERCEIVED input lag) → unrecoverable wedge when the consumer never drains. TRIGGERS ON NORMAL INTERACTIVE rc USE under heavy harness output (TUI redraw), NOT only message injection — same root, wider repro. FIX DIRECTION: move controller delivery off the drain thread onto a dedicated writer (the viewer_writer pattern) BUT preserve the authoritative cursor — block the WRITER thread (not the drain), bound the wedge (deadline → detach/mark-gone, never park forever), never silently evict the operator's authoritative view. (v0.13.0)",
2026-06-21T08:16:00.2351287Z       "requiredStages": [
2026-06-21T08:16:00.2351392Z         "impl",
2026-06-21T08:16:00.2351525Z         "unit",
2026-06-21T08:16:00.2351632Z         "int"
2026-06-21T08:16:00.2351740Z       ],
2026-06-21T08:16:00.2351873Z       "stages": {
2026-06-21T08:16:00.2351980Z         "doc": {
2026-06-21T08:16:00.2352092Z           "complete": false,
2026-06-21T08:16:00.2352206Z           "evidence": []
2026-06-21T08:16:00.2352316Z         },
2026-06-21T08:16:00.2352423Z         "impl": {
2026-06-21T08:16:00.2352537Z           "complete": true,
2026-06-21T08:16:00.2352648Z           "evidence": [
2026-06-21T08:16:00.2352752Z             {
2026-06-21T08:16:00.2352900Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.2353010Z               "line": 335
2026-06-21T08:16:00.2353124Z             },
2026-06-21T08:16:00.2353225Z             {
2026-06-21T08:16:00.2353377Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.2353486Z               "line": 762
2026-06-21T08:16:00.2353587Z             },
2026-06-21T08:16:00.2353692Z             {
2026-06-21T08:16:00.2353839Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.2353963Z               "line": 1026
2026-06-21T08:16:00.2354078Z             }
2026-06-21T08:16:00.2354184Z           ]
2026-06-21T08:16:00.2354288Z         },
2026-06-21T08:16:00.2354402Z         "int": {
2026-06-21T08:16:00.2354527Z           "complete": true,
2026-06-21T08:16:00.2354640Z           "evidence": [
2026-06-21T08:16:00.2354745Z             {
2026-06-21T08:16:00.2354927Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
2026-06-21T08:16:00.2355040Z               "line": 256
2026-06-21T08:16:00.2355140Z             },
2026-06-21T08:16:00.2355244Z             {
2026-06-21T08:16:00.2355419Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
2026-06-21T08:16:00.2355535Z               "line": 382
2026-06-21T08:16:00.2355643Z             }
2026-06-21T08:16:00.2355748Z           ]
2026-06-21T08:16:00.2355849Z         },
2026-06-21T08:16:00.2356043Z         "unit": {
2026-06-21T08:16:00.2356164Z           "complete": true,
2026-06-21T08:16:00.2356287Z           "evidence": [
2026-06-21T08:16:00.2356597Z             {
2026-06-21T08:16:00.2356741Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.2356850Z               "line": 2427
2026-06-21T08:16:00.2356959Z             },
2026-06-21T08:16:00.2357061Z             {
2026-06-21T08:16:00.2357211Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.2357332Z               "line": 2485
2026-06-21T08:16:00.2357442Z             }
2026-06-21T08:16:00.2357550Z           ]
2026-06-21T08:16:00.2357644Z         }
2026-06-21T08:16:00.2357754Z       }
2026-06-21T08:16:00.2357857Z     },
2026-06-21T08:16:00.2357966Z     {
2026-06-21T08:16:00.2358135Z       "id": "REQ-HAZARD-INPUT-ACK-BACKPRESSURE",
2026-06-21T08:16:00.2365373Z       "title": "A FLOOD of operator input on one brain↔broker connection deadlocks the broker PERMANENTLY (entire broker — no new/existing attach; the controller stays latched because the per-conn handler can't process the detach). ROOT (doyle /diagnose, code-grounded + HITL capture, the v0.13.0 P1 ctrl+V re-open): `serve_attach` processes a whole `NetStreamData` batch of N operator `Input` records in its inner `for rec in decoder.push()` loop, calling `brain.send_effect(op_id, &bytes)` N times WITHOUT returning to `read_event()` — so the brain writes N `KIND_INPUT` frames back-to-back and drains nothing. The broker's single-threaded per-conn handler answers EACH with `send_frame(applied_envelope)` on the SAME conn (B5 exactly-once ack, KNOWN-HAZARDS 7.2). With the brain not reading, the broker→brain return direction fills (~10 frames = the IPC pipe buffer) → `send_frame` BLOCKS → the handler stops reading → the brain's writes block too → mutual full-duplex DEADLOCK. Capture pinned it: 11 input frames, write_input 11/11 (P0 holds — the PTY write is fine), ack send START=11 / END=10 (frame #11's applied-ack never returns). Same class as the v0.12.1 L0 two-conn split. Windows Terminal's ctrl+V paste accelerator was the trigger (injects the clipboard as a char-by-char key flood) but the deadlock is generic to ANY input flood, NOT ctrl+V-specific and NOT a P0 (PTY-write) or W1 (output-drain) regression. The applied-ack is load-bearing ONLY for `shellchan` (one-at-a-time spool delivery WAITS on `BrokerEvent::Applied`); `serve_attach` DISCARDS it (the operator/rc path is fire-and-forward, op_id for dedup only, never gates on the ack). FIX (doyle-approved): CONDITIONAL ACK — `InputReq` gains `ack: bool` (serde default = true, N-1-safe: an older brain's input still acks = today's behavior). `serve_attach`'s operator path calls `send_effect_no_ack` (ack=false) → `dispatch_input` writes NO applied frame → the per-conn handler never writes back while servicing the flood → it always drains → no deadlock (cures ANY input flood). `shellchan` keeps `send_effect` (ack=true) and its `Applied`-wait. Exactly-once PRESERVED: the broker still dedups by (session, op_id) at the applied-set regardless of the ack. N-1 caveat: an OLD resident broker (self-update window) ignores `ack=false` → still acks → the deadlock persists until a broker restart (inherent KNOWN-HAZARDS 7.9 broker-resident-wire-change class). (v0.13.0)",
2026-06-21T08:16:00.2365647Z       "requiredStages": [
2026-06-21T08:16:00.2365762Z         "doc",
2026-06-21T08:16:00.2365879Z         "impl",
2026-06-21T08:16:00.2365984Z         "unit",
2026-06-21T08:16:00.2366099Z         "int"
2026-06-21T08:16:00.2366199Z       ],
2026-06-21T08:16:00.2366313Z       "stages": {
2026-06-21T08:16:00.2366409Z         "doc": {
2026-06-21T08:16:00.2366532Z           "complete": true,
2026-06-21T08:16:00.2366647Z           "evidence": [
2026-06-21T08:16:00.2366752Z             {
2026-06-21T08:16:00.2366899Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.2367005Z               "line": 454
2026-06-21T08:16:00.2367109Z             }
2026-06-21T08:16:00.2367214Z           ]
2026-06-21T08:16:00.2367316Z         },
2026-06-21T08:16:00.2367582Z         "impl": {
2026-06-21T08:16:00.2367697Z           "complete": true,
2026-06-21T08:16:00.2367921Z           "evidence": [
2026-06-21T08:16:00.2368026Z             {
2026-06-21T08:16:00.2368181Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-21T08:16:00.2368291Z               "line": 203
2026-06-21T08:16:00.2368399Z             },
2026-06-21T08:16:00.2368541Z             {
2026-06-21T08:16:00.2368723Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.2368846Z               "line": 487
2026-06-21T08:16:00.2369023Z             },
2026-06-21T08:16:00.2369127Z             {
2026-06-21T08:16:00.2369267Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.2369395Z               "line": 1822
2026-06-21T08:16:00.2369504Z             },
2026-06-21T08:16:00.2369610Z             {
2026-06-21T08:16:00.2369752Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T08:16:00.2369858Z               "line": 331
2026-06-21T08:16:00.2369986Z             }
2026-06-21T08:16:00.2370086Z           ]
2026-06-21T08:16:00.2370187Z         },
2026-06-21T08:16:00.2370301Z         "int": {
2026-06-21T08:16:00.2370420Z           "complete": true,
2026-06-21T08:16:00.2370536Z           "evidence": [
2026-06-21T08:16:00.2370643Z             {
2026-06-21T08:16:00.2370798Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-21T08:16:00.2370907Z               "line": 737
2026-06-21T08:16:00.2371015Z             },
2026-06-21T08:16:00.2371125Z             {
2026-06-21T08:16:00.2371264Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-21T08:16:00.2371372Z               "line": 854
2026-06-21T08:16:00.2371477Z             },
2026-06-21T08:16:00.2371588Z             {
2026-06-21T08:16:00.2371769Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
2026-06-21T08:16:00.2371883Z               "line": 544
2026-06-21T08:16:00.2371987Z             },
2026-06-21T08:16:00.2372088Z             {
2026-06-21T08:16:00.2372260Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
2026-06-21T08:16:00.2372378Z               "line": 1800
2026-06-21T08:16:00.2372480Z             },
2026-06-21T08:16:00.2372579Z             {
2026-06-21T08:16:00.2372752Z               "path": "crates/spt-daemon/tests/input_ack_deadlock.rs",
2026-06-21T08:16:00.2372865Z               "line": 266
2026-06-21T08:16:00.2372960Z             }
2026-06-21T08:16:00.2373071Z           ]
2026-06-21T08:16:00.2373175Z         },
2026-06-21T08:16:00.2373284Z         "unit": {
2026-06-21T08:16:00.2373408Z           "complete": true,
2026-06-21T08:16:00.2373520Z           "evidence": [
2026-06-21T08:16:00.2373624Z             {
2026-06-21T08:16:00.2373763Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T08:16:00.2373882Z               "line": 985
2026-06-21T08:16:00.2373987Z             },
2026-06-21T08:16:00.2374092Z             {
2026-06-21T08:16:00.2374225Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T08:16:00.2374340Z               "line": 1019
2026-06-21T08:16:00.2374450Z             }
2026-06-21T08:16:00.2374549Z           ]
2026-06-21T08:16:00.2374650Z         }
2026-06-21T08:16:00.2378022Z       }
2026-06-21T08:16:00.2378156Z     },
2026-06-21T08:16:00.2378262Z     {
2026-06-21T08:16:00.2378399Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-21T08:16:00.2379101Z       "title": "Scheduling never subtracts a Duration from Instant::now() (underflow-panics on a host booted more recently than the offset); 'due now / never run' is Option<Instant>=None gated on forward duration_since only (5.9)",
2026-06-21T08:16:00.2379226Z       "requiredStages": [
2026-06-21T08:16:00.2379340Z         "impl",
2026-06-21T08:16:00.2379459Z         "unit"
2026-06-21T08:16:00.2379564Z       ],
2026-06-21T08:16:00.2379673Z       "stages": {
2026-06-21T08:16:00.2379774Z         "doc": {
2026-06-21T08:16:00.2379893Z           "complete": false,
2026-06-21T08:16:00.2379997Z           "evidence": []
2026-06-21T08:16:00.2380260Z         },
2026-06-21T08:16:00.2380360Z         "impl": {
2026-06-21T08:16:00.2380480Z           "complete": true,
2026-06-21T08:16:00.2380684Z           "evidence": [
2026-06-21T08:16:00.2380785Z             {
2026-06-21T08:16:00.2380942Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.2381058Z               "line": 759
2026-06-21T08:16:00.2381157Z             }
2026-06-21T08:16:00.2381266Z           ]
2026-06-21T08:16:00.2381372Z         },
2026-06-21T08:16:00.2381481Z         "int": {
2026-06-21T08:16:00.2381594Z           "complete": false,
2026-06-21T08:16:00.2381718Z           "evidence": []
2026-06-21T08:16:00.2381820Z         },
2026-06-21T08:16:00.2381923Z         "unit": {
2026-06-21T08:16:00.2382047Z           "complete": true,
2026-06-21T08:16:00.2382148Z           "evidence": [
2026-06-21T08:16:00.2382256Z             {
2026-06-21T08:16:00.2382411Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.2382524Z               "line": 873
2026-06-21T08:16:00.2382629Z             }
2026-06-21T08:16:00.2382730Z           ]
2026-06-21T08:16:00.2382839Z         }
2026-06-21T08:16:00.2382943Z       }
2026-06-21T08:16:00.2383049Z     },
2026-06-21T08:16:00.2383154Z     {
2026-06-21T08:16:00.2383316Z       "id": "REQ-HAZARD-LIVEHOST-BOOT-LIVENESS-GATE",
2026-06-21T08:16:00.2385711Z       "title": "B5: `spt daemon start` does NOT revive phantom Psyches for dead-but-online-latched perches. Today reconcile_once (livehost.rs:285) spawns a Psyche per status=online live_agent perch at boot WITHOUT verifying the harness child / {id}-psyche is actually alive — so a Cold start after an unclean stop revives N psyches for N dead-but-latched perches (3 psyches for 3 dead perches). FIX: gate the boot psyche-spawn on real child-liveness — a perch with NO live broker session (the B2 reconcile signal) is marked OFFLINE at boot instead of hosted, so a dead-harness perch is never revived. Shares the B2 reconcile loop (this is its boot-gate arm); composes with B2's honest latch. Also closes wall-a's psyche_host_error gap (residency-confirm does not run at boot tick-1, livehost.rs:395-441 / 257-263). (v0.12.0)",
2026-06-21T08:16:00.2385888Z       "requiredStages": [
2026-06-21T08:16:00.2386006Z         "impl",
2026-06-21T08:16:00.2386101Z         "unit",
2026-06-21T08:16:00.2386208Z         "int"
2026-06-21T08:16:00.2386311Z       ],
2026-06-21T08:16:00.2386421Z       "stages": {
2026-06-21T08:16:00.2386518Z         "doc": {
2026-06-21T08:16:00.2386640Z           "complete": false,
2026-06-21T08:16:00.2386744Z           "evidence": []
2026-06-21T08:16:00.2386849Z         },
2026-06-21T08:16:00.2386961Z         "impl": {
2026-06-21T08:16:00.2387075Z           "complete": true,
2026-06-21T08:16:00.2387181Z           "evidence": [
2026-06-21T08:16:00.2387290Z             {
2026-06-21T08:16:00.2387443Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2387553Z               "line": 705
2026-06-21T08:16:00.2387657Z             }
2026-06-21T08:16:00.2387763Z           ]
2026-06-21T08:16:00.2387867Z         },
2026-06-21T08:16:00.2387967Z         "int": {
2026-06-21T08:16:00.2388091Z           "complete": true,
2026-06-21T08:16:00.2388206Z           "evidence": [
2026-06-21T08:16:00.2388311Z             {
2026-06-21T08:16:00.2388478Z               "path": "crates/spt/tests/livehost_bootgate_e2e.rs",
2026-06-21T08:16:00.2388587Z               "line": 24
2026-06-21T08:16:00.2388692Z             }
2026-06-21T08:16:00.2388793Z           ]
2026-06-21T08:16:00.2388897Z         },
2026-06-21T08:16:00.2389080Z         "unit": {
2026-06-21T08:16:00.2389207Z           "complete": true,
2026-06-21T08:16:00.2389315Z           "evidence": [
2026-06-21T08:16:00.2389425Z             {
2026-06-21T08:16:00.2389576Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2389680Z               "line": 918
2026-06-21T08:16:00.2389791Z             }
2026-06-21T08:16:00.2389886Z           ]
2026-06-21T08:16:00.2389995Z         }
2026-06-21T08:16:00.2390200Z       }
2026-06-21T08:16:00.2390310Z     },
2026-06-21T08:16:00.2390410Z     {
2026-06-21T08:16:00.2390649Z       "id": "REQ-HAZARD-LIVEHOST-BOOT-RACE",
2026-06-21T08:16:00.2394172Z       "title": "The brain's daemon-hosted Psyche lifecycle surfaces a host-FAILURE on the live perch (harness-diagnosable) and runs net-INDEPENDENTLY. When reconcile_once→host_one→spawn_psyche fails for a state=live_agent+status=online endpoint (e.g. the adapter's psyche binary absent from its install dir, REQ-INSTALL-11), the failure MUST be written to the perch info.json as a CURRENT-STATE field (reason + ts + attempt count; overwritten each 5s retry, CLEARED on successful host) and surfaced by `spt endpoint list`/status — never left as an eprintln on the brain's invisible stderr where a harness reading only perch state is blind. status=online stays authoritative (agent reachable; only the Psyche is missing — brain-restart rehydrate legitimately has online-without-Psyche windows), so this is a SEPARATE psyche-host-health field, never a status de-stamp. Net-independence is a locked-in invariant: spawn_live_host (brainproc.rs:230) reaches the reconcile and hosts the Psyche on a net-less/unpaired/peer-pump-STALLED node, proven by a REAL detached-daemon E2E (real broker→brain-child, real api seed+listen, real install-dir psyche binary). spt-core SURFACES the failure; the adapter owns fixing its packaging.",
2026-06-21T08:16:00.2394361Z       "requiredStages": [
2026-06-21T08:16:00.2394465Z         "impl",
2026-06-21T08:16:00.2394571Z         "unit",
2026-06-21T08:16:00.2394669Z         "int"
2026-06-21T08:16:00.2394763Z       ],
2026-06-21T08:16:00.2394874Z       "stages": {
2026-06-21T08:16:00.2394983Z         "doc": {
2026-06-21T08:16:00.2395107Z           "complete": false,
2026-06-21T08:16:00.2395213Z           "evidence": []
2026-06-21T08:16:00.2395312Z         },
2026-06-21T08:16:00.2395421Z         "impl": {
2026-06-21T08:16:00.2395528Z           "complete": true,
2026-06-21T08:16:00.2395632Z           "evidence": [
2026-06-21T08:16:00.2395761Z             {
2026-06-21T08:16:00.2395918Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2396037Z               "line": 391
2026-06-21T08:16:00.2396148Z             },
2026-06-21T08:16:00.2396262Z             {
2026-06-21T08:16:00.2396405Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.2396514Z               "line": 343
2026-06-21T08:16:00.2396619Z             },
2026-06-21T08:16:00.2396715Z             {
2026-06-21T08:16:00.2396852Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2396972Z               "line": 1750
2026-06-21T08:16:00.2397078Z             },
2026-06-21T08:16:00.2397181Z             {
2026-06-21T08:16:00.2397309Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2397414Z               "line": 3191
2026-06-21T08:16:00.2397522Z             }
2026-06-21T08:16:00.2397626Z           ]
2026-06-21T08:16:00.2397731Z         },
2026-06-21T08:16:00.2397841Z         "int": {
2026-06-21T08:16:00.2397964Z           "complete": true,
2026-06-21T08:16:00.2398071Z           "evidence": [
2026-06-21T08:16:00.2398170Z             {
2026-06-21T08:16:00.2398342Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-21T08:16:00.2398447Z               "line": 353
2026-06-21T08:16:00.2398556Z             },
2026-06-21T08:16:00.2398661Z             {
2026-06-21T08:16:00.2398833Z               "path": "crates/spt/tests/livehost_psyche_fail_e2e.rs",
2026-06-21T08:16:00.2399006Z               "line": 23
2026-06-21T08:16:00.2399109Z             }
2026-06-21T08:16:00.2399214Z           ]
2026-06-21T08:16:00.2399320Z         },
2026-06-21T08:16:00.2399428Z         "unit": {
2026-06-21T08:16:00.2399548Z           "complete": true,
2026-06-21T08:16:00.2399659Z           "evidence": [
2026-06-21T08:16:00.2399767Z             {
2026-06-21T08:16:00.2399904Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.2400023Z               "line": 743
2026-06-21T08:16:00.2400236Z             },
2026-06-21T08:16:00.2400342Z             {
2026-06-21T08:16:00.2400479Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2400675Z               "line": 7863
2026-06-21T08:16:00.2400784Z             }
2026-06-21T08:16:00.2400884Z           ]
2026-06-21T08:16:00.2400994Z         }
2026-06-21T08:16:00.2401094Z       }
2026-06-21T08:16:00.2401185Z     },
2026-06-21T08:16:00.2401285Z     {
2026-06-21T08:16:00.2401418Z       "id": "REQ-HAZARD-LIVEHOST-NONRESIDENT",
2026-06-21T08:16:00.2404694Z       "title": "A daemon-hosted Psyche that spawns then EXITS IMMEDIATELY is a host failure, surfaced like a spawn failure (closes the v0.8.1 residual masking): the REQ-HAZARD-LIVEHOST-BOOT-RACE signal stamps `psyche_host_error` only when `spawn_psyche` returns Err, NOT when the detached spawn() returns Ok but the child dies within moments (e.g. a bad-argv child exiting 2 — the F-009 case). That leaves the residual 'online + no Psyche + no cause' gap: the nested `{id}-psyche` info.json is written status=online with a real-but-DEAD pid and the PARENT perch carries NO psyche_host_error (perri's F-010: tasklist showed 0 host procs across the window while info.json read online). The host MUST confirm RESIDENCY — a hosted child not alive (or whose `{id}-psyche` perch never re-registers / has a dead pid) within N seconds of spawn is treated as a host failure: stamp the parent perch `psyche_host_error{reason:\"host not resident within <n>s (psyche perch missing/dead pid)\"}` (and do not leave a phantom online nested perch). Closes the last masking gap the v0.8.1 fix left open. perri's F-010 (v0.8.1 dogfood). Sibling of REQ-HAZARD-LIVEHOST-BOOT-RACE.",
2026-06-21T08:16:00.2404865Z       "requiredStages": [
2026-06-21T08:16:00.2404969Z         "impl",
2026-06-21T08:16:00.2405074Z         "unit",
2026-06-21T08:16:00.2405187Z         "int"
2026-06-21T08:16:00.2405286Z       ],
2026-06-21T08:16:00.2405391Z       "stages": {
2026-06-21T08:16:00.2405492Z         "doc": {
2026-06-21T08:16:00.2405634Z           "complete": false,
2026-06-21T08:16:00.2405744Z           "evidence": []
2026-06-21T08:16:00.2405844Z         },
2026-06-21T08:16:00.2405982Z         "impl": {
2026-06-21T08:16:00.2406102Z           "complete": true,
2026-06-21T08:16:00.2406220Z           "evidence": [
2026-06-21T08:16:00.2406321Z             {
2026-06-21T08:16:00.2406468Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2406577Z               "line": 64
2026-06-21T08:16:00.2406679Z             },
2026-06-21T08:16:00.2406788Z             {
2026-06-21T08:16:00.2406926Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2407047Z               "line": 78
2026-06-21T08:16:00.2407150Z             },
2026-06-21T08:16:00.2407255Z             {
2026-06-21T08:16:00.2407404Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2407512Z               "line": 170
2026-06-21T08:16:00.2407619Z             },
2026-06-21T08:16:00.2407723Z             {
2026-06-21T08:16:00.2407874Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2407988Z               "line": 185
2026-06-21T08:16:00.2408096Z             },
2026-06-21T08:16:00.2408196Z             {
2026-06-21T08:16:00.2408349Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2408458Z               "line": 195
2026-06-21T08:16:00.2408563Z             },
2026-06-21T08:16:00.2408668Z             {
2026-06-21T08:16:00.2408811Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2408922Z               "line": 205
2026-06-21T08:16:00.2409101Z             },
2026-06-21T08:16:00.2409202Z             {
2026-06-21T08:16:00.2409345Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2409450Z               "line": 294
2026-06-21T08:16:00.2409556Z             },
2026-06-21T08:16:00.2409650Z             {
2026-06-21T08:16:00.2409798Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2410036Z               "line": 308
2026-06-21T08:16:00.2410147Z             },
2026-06-21T08:16:00.2410252Z             {
2026-06-21T08:16:00.2410484Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2410588Z               "line": 377
2026-06-21T08:16:00.2410682Z             },
2026-06-21T08:16:00.2410781Z             {
2026-06-21T08:16:00.2410921Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2411034Z               "line": 437
2026-06-21T08:16:00.2411139Z             },
2026-06-21T08:16:00.2411245Z             {
2026-06-21T08:16:00.2411392Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2411493Z               "line": 455
2026-06-21T08:16:00.2411602Z             }
2026-06-21T08:16:00.2411711Z           ]
2026-06-21T08:16:00.2411808Z         },
2026-06-21T08:16:00.2411907Z         "int": {
2026-06-21T08:16:00.2412017Z           "complete": true,
2026-06-21T08:16:00.2412133Z           "evidence": [
2026-06-21T08:16:00.2412241Z             {
2026-06-21T08:16:00.2412408Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-21T08:16:00.2412527Z               "line": 45
2026-06-21T08:16:00.2412627Z             },
2026-06-21T08:16:00.2412733Z             {
2026-06-21T08:16:00.2412884Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-21T08:16:00.2412990Z               "line": 354
2026-06-21T08:16:00.2413096Z             },
2026-06-21T08:16:00.2413203Z             {
2026-06-21T08:16:00.2413369Z               "path": "crates/spt/tests/livehost_nonresident_e2e.rs",
2026-06-21T08:16:00.2413480Z               "line": 31
2026-06-21T08:16:00.2413584Z             }
2026-06-21T08:16:00.2413675Z           ]
2026-06-21T08:16:00.2413786Z         },
2026-06-21T08:16:00.2413889Z         "unit": {
2026-06-21T08:16:00.2414009Z           "complete": true,
2026-06-21T08:16:00.2414119Z           "evidence": [
2026-06-21T08:16:00.2414223Z             {
2026-06-21T08:16:00.2414372Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2414481Z               "line": 727
2026-06-21T08:16:00.2414590Z             }
2026-06-21T08:16:00.2414696Z           ]
2026-06-21T08:16:00.2414810Z         }
2026-06-21T08:16:00.2414919Z       }
2026-06-21T08:16:00.2415021Z     },
2026-06-21T08:16:00.2415129Z     {
2026-06-21T08:16:00.2415263Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-21T08:16:00.2415510Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-21T08:16:00.2415629Z       "requiredStages": [
2026-06-21T08:16:00.2415733Z         "impl",
2026-06-21T08:16:00.2415836Z         "unit"
2026-06-21T08:16:00.2415946Z       ],
2026-06-21T08:16:00.2416042Z       "stages": {
2026-06-21T08:16:00.2416151Z         "doc": {
2026-06-21T08:16:00.2416276Z           "complete": false,
2026-06-21T08:16:00.2416390Z           "evidence": []
2026-06-21T08:16:00.2416489Z         },
2026-06-21T08:16:00.2416600Z         "impl": {
2026-06-21T08:16:00.2416714Z           "complete": true,
2026-06-21T08:16:00.2416837Z           "evidence": [
2026-06-21T08:16:00.2416934Z             {
2026-06-21T08:16:00.2417086Z               "path": "crates/spt/src/api/auth.rs",
2026-06-21T08:16:00.2417200Z               "line": 14
2026-06-21T08:16:00.2417296Z             },
2026-06-21T08:16:00.2417405Z             {
2026-06-21T08:16:00.2417540Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T08:16:00.2417658Z               "line": 566
2026-06-21T08:16:00.2417758Z             }
2026-06-21T08:16:00.2417860Z           ]
2026-06-21T08:16:00.2417959Z         },
2026-06-21T08:16:00.2418068Z         "int": {
2026-06-21T08:16:00.2418189Z           "complete": false,
2026-06-21T08:16:00.2418293Z           "evidence": []
2026-06-21T08:16:00.2418396Z         },
2026-06-21T08:16:00.2418501Z         "unit": {
2026-06-21T08:16:00.2418628Z           "complete": true,
2026-06-21T08:16:00.2418737Z           "evidence": [
2026-06-21T08:16:00.2418842Z             {
2026-06-21T08:16:00.2419108Z               "path": "crates/spt/src/api/auth.rs",
2026-06-21T08:16:00.2419219Z               "line": 130
2026-06-21T08:16:00.2419423Z             },
2026-06-21T08:16:00.2419520Z             {
2026-06-21T08:16:00.2419662Z               "path": "crates/spt/src/api/auth.rs",
2026-06-21T08:16:00.2419757Z               "line": 138
2026-06-21T08:16:00.2419868Z             },
2026-06-21T08:16:00.2419972Z             {
2026-06-21T08:16:00.2420102Z               "path": "crates/spt/src/api/auth.rs",
2026-06-21T08:16:00.2420206Z               "line": 146
2026-06-21T08:16:00.2420301Z             },
2026-06-21T08:16:00.2420397Z             {
2026-06-21T08:16:00.2420530Z               "path": "crates/spt/src/api/auth.rs",
2026-06-21T08:16:00.2420644Z               "line": 154
2026-06-21T08:16:00.2420750Z             },
2026-06-21T08:16:00.2420854Z             {
2026-06-21T08:16:00.2420991Z               "path": "crates/spt/src/api/auth.rs",
2026-06-21T08:16:00.2421091Z               "line": 162
2026-06-21T08:16:00.2421213Z             },
2026-06-21T08:16:00.2421313Z             {
2026-06-21T08:16:00.2421433Z               "path": "crates/spt/src/api/auth.rs",
2026-06-21T08:16:00.2421547Z               "line": 170
2026-06-21T08:16:00.2421646Z             }
2026-06-21T08:16:00.2421748Z           ]
2026-06-21T08:16:00.2421848Z         }
2026-06-21T08:16:00.2421957Z       }
2026-06-21T08:16:00.2422058Z     },
2026-06-21T08:16:00.2422167Z     {
2026-06-21T08:16:00.2422305Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-21T08:16:00.2423216Z       "title": "Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)",
2026-06-21T08:16:00.2423341Z       "requiredStages": [
2026-06-21T08:16:00.2423449Z         "impl",
2026-06-21T08:16:00.2423555Z         "unit"
2026-06-21T08:16:00.2423656Z       ],
2026-06-21T08:16:00.2423782Z       "stages": {
2026-06-21T08:16:00.2423891Z         "doc": {
2026-06-21T08:16:00.2423992Z           "complete": false,
2026-06-21T08:16:00.2424116Z           "evidence": []
2026-06-21T08:16:00.2424225Z         },
2026-06-21T08:16:00.2424341Z         "impl": {
2026-06-21T08:16:00.2424459Z           "complete": true,
2026-06-21T08:16:00.2424564Z           "evidence": [
2026-06-21T08:16:00.2424679Z             {
2026-06-21T08:16:00.2424850Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-21T08:16:00.2424960Z               "line": 34
2026-06-21T08:16:00.2425055Z             }
2026-06-21T08:16:00.2425160Z           ]
2026-06-21T08:16:00.2425261Z         },
2026-06-21T08:16:00.2425365Z         "int": {
2026-06-21T08:16:00.2425484Z           "complete": false,
2026-06-21T08:16:00.2425590Z           "evidence": []
2026-06-21T08:16:00.2425699Z         },
2026-06-21T08:16:00.2425804Z         "unit": {
2026-06-21T08:16:00.2425924Z           "complete": true,
2026-06-21T08:16:00.2426037Z           "evidence": [
2026-06-21T08:16:00.2426146Z             {
2026-06-21T08:16:00.2426316Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-21T08:16:00.2426434Z               "line": 188
2026-06-21T08:16:00.2426544Z             },
2026-06-21T08:16:00.2426649Z             {
2026-06-21T08:16:00.2426821Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-21T08:16:00.2426936Z               "line": 200
2026-06-21T08:16:00.2427040Z             },
2026-06-21T08:16:00.2427141Z             {
2026-06-21T08:16:00.2427303Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-21T08:16:00.2427422Z               "line": 211
2026-06-21T08:16:00.2427532Z             },
2026-06-21T08:16:00.2427636Z             {
2026-06-21T08:16:00.2427809Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-21T08:16:00.2427922Z               "line": 253
2026-06-21T08:16:00.2428032Z             },
2026-06-21T08:16:00.2428133Z             {
2026-06-21T08:16:00.2428405Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-21T08:16:00.2428589Z               "line": 277
2026-06-21T08:16:00.2428691Z             },
2026-06-21T08:16:00.2428791Z             {
2026-06-21T08:16:00.2429022Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-21T08:16:00.2429137Z               "line": 300
2026-06-21T08:16:00.2429245Z             },
2026-06-21T08:16:00.2429354Z             {
2026-06-21T08:16:00.2429522Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-21T08:16:00.2429630Z               "line": 316
2026-06-21T08:16:00.2429732Z             }
2026-06-21T08:16:00.2429837Z           ]
2026-06-21T08:16:00.2429950Z         }
2026-06-21T08:16:00.2430056Z       }
2026-06-21T08:16:00.2430156Z     },
2026-06-21T08:16:00.2430255Z     {
2026-06-21T08:16:00.2430385Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-21T08:16:00.2430957Z       "title": "Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)",
2026-06-21T08:16:00.2431086Z       "requiredStages": [
2026-06-21T08:16:00.2431190Z         "impl",
2026-06-21T08:16:00.2431292Z         "unit"
2026-06-21T08:16:00.2431396Z       ],
2026-06-21T08:16:00.2431504Z       "stages": {
2026-06-21T08:16:00.2431618Z         "doc": {
2026-06-21T08:16:00.2431737Z           "complete": false,
2026-06-21T08:16:00.2431844Z           "evidence": []
2026-06-21T08:16:00.2431950Z         },
2026-06-21T08:16:00.2432061Z         "impl": {
2026-06-21T08:16:00.2432183Z           "complete": true,
2026-06-21T08:16:00.2432294Z           "evidence": [
2026-06-21T08:16:00.2432399Z             {
2026-06-21T08:16:00.2432550Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T08:16:00.2432651Z               "line": 29
2026-06-21T08:16:00.2432756Z             },
2026-06-21T08:16:00.2432860Z             {
2026-06-21T08:16:00.2433017Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T08:16:00.2433127Z               "line": 174
2026-06-21T08:16:00.2433243Z             },
2026-06-21T08:16:00.2433346Z             {
2026-06-21T08:16:00.2433481Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T08:16:00.2433606Z               "line": 194
2026-06-21T08:16:00.2433714Z             },
2026-06-21T08:16:00.2433819Z             {
2026-06-21T08:16:00.2433962Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T08:16:00.2434067Z               "line": 222
2026-06-21T08:16:00.2434187Z             }
2026-06-21T08:16:00.2434282Z           ]
2026-06-21T08:16:00.2434390Z         },
2026-06-21T08:16:00.2434504Z         "int": {
2026-06-21T08:16:00.2434620Z           "complete": false,
2026-06-21T08:16:00.2434738Z           "evidence": []
2026-06-21T08:16:00.2434848Z         },
2026-06-21T08:16:00.2434958Z         "unit": {
2026-06-21T08:16:00.2435072Z           "complete": true,
2026-06-21T08:16:00.2435197Z           "evidence": [
2026-06-21T08:16:00.2435287Z             {
2026-06-21T08:16:00.2435430Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T08:16:00.2435554Z               "line": 329
2026-06-21T08:16:00.2435653Z             },
2026-06-21T08:16:00.2435759Z             {
2026-06-21T08:16:00.2435901Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T08:16:00.2436021Z               "line": 344
2026-06-21T08:16:00.2436132Z             },
2026-06-21T08:16:00.2436235Z             {
2026-06-21T08:16:00.2436369Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T08:16:00.2436475Z               "line": 417
2026-06-21T08:16:00.2436573Z             },
2026-06-21T08:16:00.2436673Z             {
2026-06-21T08:16:00.2436820Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T08:16:00.2436943Z               "line": 433
2026-06-21T08:16:00.2437047Z             },
2026-06-21T08:16:00.2437148Z             {
2026-06-21T08:16:00.2437386Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T08:16:00.2437510Z               "line": 492
2026-06-21T08:16:00.2437716Z             },
2026-06-21T08:16:00.2437816Z             {
2026-06-21T08:16:00.2437967Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T08:16:00.2438068Z               "line": 506
2026-06-21T08:16:00.2438168Z             },
2026-06-21T08:16:00.2438272Z             {
2026-06-21T08:16:00.2438416Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T08:16:00.2438525Z               "line": 517
2026-06-21T08:16:00.2438631Z             },
2026-06-21T08:16:00.2438736Z             {
2026-06-21T08:16:00.2438883Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T08:16:00.2439074Z               "line": 528
2026-06-21T08:16:00.2439179Z             }
2026-06-21T08:16:00.2439289Z           ]
2026-06-21T08:16:00.2439389Z         }
2026-06-21T08:16:00.2439483Z       }
2026-06-21T08:16:00.2439588Z     },
2026-06-21T08:16:00.2439692Z     {
2026-06-21T08:16:00.2439847Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-21T08:16:00.2440539Z       "title": "Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)",
2026-06-21T08:16:00.2440673Z       "requiredStages": [
2026-06-21T08:16:00.2440787Z         "impl",
2026-06-21T08:16:00.2440892Z         "unit"
2026-06-21T08:16:00.2440988Z       ],
2026-06-21T08:16:00.2441092Z       "stages": {
2026-06-21T08:16:00.2441207Z         "doc": {
2026-06-21T08:16:00.2441326Z           "complete": false,
2026-06-21T08:16:00.2441440Z           "evidence": []
2026-06-21T08:16:00.2441547Z         },
2026-06-21T08:16:00.2441655Z         "impl": {
2026-06-21T08:16:00.2441774Z           "complete": true,
2026-06-21T08:16:00.2441890Z           "evidence": [
2026-06-21T08:16:00.2441998Z             {
2026-06-21T08:16:00.2442154Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T08:16:00.2442287Z               "line": 27
2026-06-21T08:16:00.2442395Z             },
2026-06-21T08:16:00.2442524Z             {
2026-06-21T08:16:00.2442682Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T08:16:00.2442791Z               "line": 110
2026-06-21T08:16:00.2442892Z             },
2026-06-21T08:16:00.2443001Z             {
2026-06-21T08:16:00.2443149Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T08:16:00.2443268Z               "line": 153
2026-06-21T08:16:00.2443372Z             },
2026-06-21T08:16:00.2443469Z             {
2026-06-21T08:16:00.2443626Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T08:16:00.2443745Z               "line": 182
2026-06-21T08:16:00.2443841Z             },
2026-06-21T08:16:00.2443946Z             {
2026-06-21T08:16:00.2444118Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-21T08:16:00.2444222Z               "line": 31
2026-06-21T08:16:00.2444341Z             },
2026-06-21T08:16:00.2444442Z             {
2026-06-21T08:16:00.2444622Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-21T08:16:00.2444733Z               "line": 113
2026-06-21T08:16:00.2444847Z             },
2026-06-21T08:16:00.2444945Z             {
2026-06-21T08:16:00.2445108Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-21T08:16:00.2445231Z               "line": 138
2026-06-21T08:16:00.2445322Z             }
2026-06-21T08:16:00.2445433Z           ]
2026-06-21T08:16:00.2445537Z         },
2026-06-21T08:16:00.2445651Z         "int": {
2026-06-21T08:16:00.2445766Z           "complete": false,
2026-06-21T08:16:00.2445871Z           "evidence": []
2026-06-21T08:16:00.2445975Z         },
2026-06-21T08:16:00.2446086Z         "unit": {
2026-06-21T08:16:00.2446209Z           "complete": true,
2026-06-21T08:16:00.2446319Z           "evidence": [
2026-06-21T08:16:00.2446419Z             {
2026-06-21T08:16:00.2446734Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T08:16:00.2446876Z               "line": 261
2026-06-21T08:16:00.2447087Z             },
2026-06-21T08:16:00.2447186Z             {
2026-06-21T08:16:00.2447348Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T08:16:00.2447455Z               "line": 276
2026-06-21T08:16:00.2447593Z             },
2026-06-21T08:16:00.2447704Z             {
2026-06-21T08:16:00.2447846Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T08:16:00.2447965Z               "line": 293
2026-06-21T08:16:00.2448071Z             },
2026-06-21T08:16:00.2448175Z             {
2026-06-21T08:16:00.2448323Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T08:16:00.2448432Z               "line": 310
2026-06-21T08:16:00.2448547Z             },
2026-06-21T08:16:00.2448652Z             {
2026-06-21T08:16:00.2448804Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T08:16:00.2448925Z               "line": 327
2026-06-21T08:16:00.2449109Z             },
2026-06-21T08:16:00.2449210Z             {
2026-06-21T08:16:00.2449367Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T08:16:00.2449481Z               "line": 366
2026-06-21T08:16:00.2449578Z             },
2026-06-21T08:16:00.2449686Z             {
2026-06-21T08:16:00.2449854Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-21T08:16:00.2449977Z               "line": 179
2026-06-21T08:16:00.2450086Z             },
2026-06-21T08:16:00.2450205Z             {
2026-06-21T08:16:00.2450370Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-21T08:16:00.2450484Z               "line": 194
2026-06-21T08:16:00.2450595Z             },
2026-06-21T08:16:00.2450703Z             {
2026-06-21T08:16:00.2450871Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-21T08:16:00.2450980Z               "line": 204
2026-06-21T08:16:00.2451084Z             },
2026-06-21T08:16:00.2451190Z             {
2026-06-21T08:16:00.2451352Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-21T08:16:00.2451467Z               "line": 259
2026-06-21T08:16:00.2451571Z             },
2026-06-21T08:16:00.2451676Z             {
2026-06-21T08:16:00.2451844Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-21T08:16:00.2451947Z               "line": 269
2026-06-21T08:16:00.2452048Z             },
2026-06-21T08:16:00.2452154Z             {
2026-06-21T08:16:00.2452320Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-21T08:16:00.2452436Z               "line": 283
2026-06-21T08:16:00.2452544Z             }
2026-06-21T08:16:00.2452653Z           ]
2026-06-21T08:16:00.2452753Z         }
2026-06-21T08:16:00.2452866Z       }
2026-06-21T08:16:00.2452969Z     },
2026-06-21T08:16:00.2453070Z     {
2026-06-21T08:16:00.2453237Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-21T08:16:00.2453457Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-21T08:16:00.2453599Z       "requiredStages": [],
2026-06-21T08:16:00.2453719Z       "stages": {
2026-06-21T08:16:00.2453833Z         "doc": {
2026-06-21T08:16:00.2453947Z           "complete": false,
2026-06-21T08:16:00.2454053Z           "evidence": []
2026-06-21T08:16:00.2454166Z         },
2026-06-21T08:16:00.2454281Z         "impl": {
2026-06-21T08:16:00.2454397Z           "complete": false,
2026-06-21T08:16:00.2454510Z           "evidence": []
2026-06-21T08:16:00.2454615Z         },
2026-06-21T08:16:00.2454726Z         "int": {
2026-06-21T08:16:00.2454829Z           "complete": false,
2026-06-21T08:16:00.2454940Z           "evidence": []
2026-06-21T08:16:00.2455050Z         },
2026-06-21T08:16:00.2455153Z         "unit": {
2026-06-21T08:16:00.2455279Z           "complete": false,
2026-06-21T08:16:00.2455393Z           "evidence": []
2026-06-21T08:16:00.2455496Z         }
2026-06-21T08:16:00.2455716Z       }
2026-06-21T08:16:00.2455824Z     },
2026-06-21T08:16:00.2455935Z     {
2026-06-21T08:16:00.2456093Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-21T08:16:00.2457036Z       "title": "Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)",
2026-06-21T08:16:00.2457165Z       "requiredStages": [
2026-06-21T08:16:00.2457271Z         "impl",
2026-06-21T08:16:00.2457384Z         "unit"
2026-06-21T08:16:00.2457485Z       ],
2026-06-21T08:16:00.2457596Z       "stages": {
2026-06-21T08:16:00.2457708Z         "doc": {
2026-06-21T08:16:00.2457851Z           "complete": false,
2026-06-21T08:16:00.2457978Z           "evidence": []
2026-06-21T08:16:00.2458082Z         },
2026-06-21T08:16:00.2458206Z         "impl": {
2026-06-21T08:16:00.2458321Z           "complete": true,
2026-06-21T08:16:00.2458443Z           "evidence": [
2026-06-21T08:16:00.2458569Z             {
2026-06-21T08:16:00.2458725Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T08:16:00.2458855Z               "line": 26
2026-06-21T08:16:00.2459025Z             },
2026-06-21T08:16:00.2459122Z             {
2026-06-21T08:16:00.2459274Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T08:16:00.2459393Z               "line": 95
2026-06-21T08:16:00.2459527Z             },
2026-06-21T08:16:00.2459632Z             {
2026-06-21T08:16:00.2459780Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T08:16:00.2459893Z               "line": 166
2026-06-21T08:16:00.2460008Z             },
2026-06-21T08:16:00.2460109Z             {
2026-06-21T08:16:00.2460256Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-21T08:16:00.2460361Z               "line": 19
2026-06-21T08:16:00.2460468Z             },
2026-06-21T08:16:00.2460565Z             {
2026-06-21T08:16:00.2460713Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-21T08:16:00.2460840Z               "line": 50
2026-06-21T08:16:00.2460944Z             },
2026-06-21T08:16:00.2461049Z             {
2026-06-21T08:16:00.2461193Z               "path": "crates/spt-live/src/turn.rs",
2026-06-21T08:16:00.2461306Z               "line": 18
2026-06-21T08:16:00.2461422Z             },
2026-06-21T08:16:00.2461531Z             {
2026-06-21T08:16:00.2461679Z               "path": "crates/spt-live/src/turn.rs",
2026-06-21T08:16:00.2461784Z               "line": 71
2026-06-21T08:16:00.2461897Z             },
2026-06-21T08:16:00.2462003Z             {
2026-06-21T08:16:00.2462151Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.2462265Z               "line": 87
2026-06-21T08:16:00.2462371Z             }
2026-06-21T08:16:00.2462465Z           ]
2026-06-21T08:16:00.2462570Z         },
2026-06-21T08:16:00.2462681Z         "int": {
2026-06-21T08:16:00.2462803Z           "complete": false,
2026-06-21T08:16:00.2462928Z           "evidence": []
2026-06-21T08:16:00.2463038Z         },
2026-06-21T08:16:00.2463137Z         "unit": {
2026-06-21T08:16:00.2463265Z           "complete": true,
2026-06-21T08:16:00.2463379Z           "evidence": [
2026-06-21T08:16:00.2463525Z             {
2026-06-21T08:16:00.2463668Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T08:16:00.2463783Z               "line": 289
2026-06-21T08:16:00.2463887Z             },
2026-06-21T08:16:00.2463993Z             {
2026-06-21T08:16:00.2464140Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T08:16:00.2464245Z               "line": 314
2026-06-21T08:16:00.2464355Z             },
2026-06-21T08:16:00.2464464Z             {
2026-06-21T08:16:00.2464604Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T08:16:00.2464727Z               "line": 350
2026-06-21T08:16:00.2464831Z             },
2026-06-21T08:16:00.2464942Z             {
2026-06-21T08:16:00.2465085Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T08:16:00.2465328Z               "line": 418
2026-06-21T08:16:00.2465475Z             },
2026-06-21T08:16:00.2465680Z             {
2026-06-21T08:16:00.2465829Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T08:16:00.2465939Z               "line": 429
2026-06-21T08:16:00.2466042Z             },
2026-06-21T08:16:00.2466146Z             {
2026-06-21T08:16:00.2466296Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T08:16:00.2466408Z               "line": 460
2026-06-21T08:16:00.2466519Z             },
2026-06-21T08:16:00.2466624Z             {
2026-06-21T08:16:00.2466771Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T08:16:00.2466892Z               "line": 471
2026-06-21T08:16:00.2467001Z             },
2026-06-21T08:16:00.2467110Z             {
2026-06-21T08:16:00.2467249Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-21T08:16:00.2472152Z               "line": 77
2026-06-21T08:16:00.2472306Z             },
2026-06-21T08:16:00.2472434Z             {
2026-06-21T08:16:00.2472612Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-21T08:16:00.2472735Z               "line": 97
2026-06-21T08:16:00.2472844Z             },
2026-06-21T08:16:00.2472950Z             {
2026-06-21T08:16:00.2473111Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-21T08:16:00.2473232Z               "line": 112
2026-06-21T08:16:00.2473345Z             },
2026-06-21T08:16:00.2473455Z             {
2026-06-21T08:16:00.2473603Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-21T08:16:00.2473721Z               "line": 123
2026-06-21T08:16:00.2473830Z             },
2026-06-21T08:16:00.2473939Z             {
2026-06-21T08:16:00.2474085Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-21T08:16:00.2474190Z               "line": 130
2026-06-21T08:16:00.2474296Z             },
2026-06-21T08:16:00.2474405Z             {
2026-06-21T08:16:00.2474553Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-21T08:16:00.2474667Z               "line": 145
2026-06-21T08:16:00.2474781Z             },
2026-06-21T08:16:00.2474891Z             {
2026-06-21T08:16:00.2475024Z               "path": "crates/spt-live/src/turn.rs",
2026-06-21T08:16:00.2475140Z               "line": 115
2026-06-21T08:16:00.2475244Z             },
2026-06-21T08:16:00.2475353Z             {
2026-06-21T08:16:00.2475484Z               "path": "crates/spt-live/src/turn.rs",
2026-06-21T08:16:00.2475607Z               "line": 130
2026-06-21T08:16:00.2475711Z             },
2026-06-21T08:16:00.2475808Z             {
2026-06-21T08:16:00.2475959Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.2476074Z               "line": 428
2026-06-21T08:16:00.2476170Z             }
2026-06-21T08:16:00.2476274Z           ]
2026-06-21T08:16:00.2476389Z         }
2026-06-21T08:16:00.2476494Z       }
2026-06-21T08:16:00.2476602Z     },
2026-06-21T08:16:00.2476702Z     {
2026-06-21T08:16:00.2476856Z       "id": "REQ-HAZARD-PTY-INPUT-WRITER-WEDGE",
2026-06-21T08:16:00.2483041Z       "title": "Pasting into an `spt rc` session WEDGES the broker — after a paste the operator can no longer type AND can no longer attach to NEW or EXISTING sessions (`brain IPC read deadline`). ROOT (doyle /diagnose, code-grounded): the operator-keystroke path rc -> net-stream Input -> serve_attach (attach.rs:197 brain.send_effect) -> KIND_INPUT -> broker dispatch loop (broker.rs:1091) -> dispatch_input (broker.rs:1459) -> session.write_input(&bytes) runs SYNCHRONOUSLY on the broker request-handling thread. W1b (REQ-HAZARD-EFFECT-JOURNAL-PTY-WEDGE) released the journal lock across the effect (fix 1) + made PtyWrite ephemeral/no-fsync (fix 3) but EXPLICITLY DEFERRED fix (2) — bound/fail-fast the PtyWrite itself. A single keystroke never fills the ConPTY input buffer; a PASTE BURST does -> write_input blocks -> the dispatch thread cannot service the next frame (a re-attach subscribe, a become_controller restore-write, an inject-floor flush) -> wedge. Not a bug-2 regression (the byte path funnels to the same write_input; paste just reliably fills the buffer). FIX (doyle design, V0.13.0-P0-PTY-INPUT-WRITER-DESIGN.md, CONTEXT L33 broker-owns-PTY/minimal + L435 SessionSurface + single-writer pattern): one dedicated per-session INPUT-WRITER THREAD = the SOLE caller of the blocking write_input, fed by a BOUNDED FIFO channel; every caller (dispatch_input, serve_attach->send_effect, inject-floor flush) ENQUEUES + returns immediately, never blocks. A blocked/slow harness blocks ONLY its own writer thread, never the broker dispatch. Backpressure (operator ruling): queue full => DROP excess input + stamp the session INPUT_BACKPRESSURE (visible health signal); the daemon NEVER wedges; a merely-slow harness self-heals as the writer drains. Exactly-once preserved (PtyWrite ephemeral: apply_once effect = the non-blocking enqueue => Applied; ack now means accepted+ordered, benign — rc does not gate on landing); order preserved (single FIFO + single writer); inject-floor (W2 Layer C) choreography moves to the lone writer. Completes the W1b-deferred fix (2), cross-platform (cfg(unix) forkpty park folds in). (v0.13.0)",
2026-06-21T08:16:00.2483548Z       "requiredStages": [
2026-06-21T08:16:00.2483652Z         "impl",
2026-06-21T08:16:00.2483763Z         "unit",
2026-06-21T08:16:00.2483858Z         "int"
2026-06-21T08:16:00.2483967Z       ],
2026-06-21T08:16:00.2484078Z       "stages": {
2026-06-21T08:16:00.2484187Z         "doc": {
2026-06-21T08:16:00.2484310Z           "complete": false,
2026-06-21T08:16:00.2484419Z           "evidence": []
2026-06-21T08:16:00.2484523Z         },
2026-06-21T08:16:00.2484627Z         "impl": {
2026-06-21T08:16:00.2484741Z           "complete": true,
2026-06-21T08:16:00.2484847Z           "evidence": [
2026-06-21T08:16:00.2484960Z             {
2026-06-21T08:16:00.2485104Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.2485223Z               "line": 943
2026-06-21T08:16:00.2485332Z             },
2026-06-21T08:16:00.2485433Z             {
2026-06-21T08:16:00.2485584Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.2485695Z               "line": 322
2026-06-21T08:16:00.2485804Z             }
2026-06-21T08:16:00.2485899Z           ]
2026-06-21T08:16:00.2486005Z         },
2026-06-21T08:16:00.2486119Z         "int": {
2026-06-21T08:16:00.2486224Z           "complete": true,
2026-06-21T08:16:00.2486359Z           "evidence": [
2026-06-21T08:16:00.2486462Z             {
2026-06-21T08:16:00.2486649Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
2026-06-21T08:16:00.2486772Z               "line": 1983
2026-06-21T08:16:00.2486872Z             }
2026-06-21T08:16:00.2486978Z           ]
2026-06-21T08:16:00.2487082Z         },
2026-06-21T08:16:00.2487191Z         "unit": {
2026-06-21T08:16:00.2487310Z           "complete": true,
2026-06-21T08:16:00.2487425Z           "evidence": [
2026-06-21T08:16:00.2487582Z             {
2026-06-21T08:16:00.2487735Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.2487862Z               "line": 2529
2026-06-21T08:16:00.2487969Z             },
2026-06-21T08:16:00.2488078Z             {
2026-06-21T08:16:00.2488221Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.2488326Z               "line": 2593
2026-06-21T08:16:00.2488431Z             },
2026-06-21T08:16:00.2488521Z             {
2026-06-21T08:16:00.2488670Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.2488783Z               "line": 2648
2026-06-21T08:16:00.2488894Z             }
2026-06-21T08:16:00.2489069Z           ]
2026-06-21T08:16:00.2489179Z         }
2026-06-21T08:16:00.2489299Z       }
2026-06-21T08:16:00.2489398Z     },
2026-06-21T08:16:00.2489536Z     {
2026-06-21T08:16:00.2489696Z       "id": "REQ-HAZARD-PUMP-IPC-DEADLINE",
2026-06-21T08:16:00.2490569Z       "title": "The single-threaded peer pump's brain-IPC reads are deadline-bounded (PUMP_PEER_IO_TIMEOUT, total-wait per call); a TimedOut read POISONS the client and escalates to a SUPERVISED RESTART, never a per-peer retry — a black-holed peer must never wedge the whole pump",
2026-06-21T08:16:00.2490907Z       "requiredStages": [
2026-06-21T08:16:00.2491012Z         "doc",
2026-06-21T08:16:00.2491121Z         "impl",
2026-06-21T08:16:00.2491227Z         "unit"
2026-06-21T08:16:00.2491326Z       ],
2026-06-21T08:16:00.2491431Z       "stages": {
2026-06-21T08:16:00.2491537Z         "doc": {
2026-06-21T08:16:00.2491646Z           "complete": true,
2026-06-21T08:16:00.2491751Z           "evidence": [
2026-06-21T08:16:00.2491861Z             {
2026-06-21T08:16:00.2491989Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.2492105Z               "line": 374
2026-06-21T08:16:00.2492200Z             }
2026-06-21T08:16:00.2492307Z           ]
2026-06-21T08:16:00.2492417Z         },
2026-06-21T08:16:00.2492521Z         "impl": {
2026-06-21T08:16:00.2492643Z           "complete": true,
2026-06-21T08:16:00.2492753Z           "evidence": [
2026-06-21T08:16:00.2492878Z             {
2026-06-21T08:16:00.2493020Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.2493131Z               "line": 200
2026-06-21T08:16:00.2493240Z             },
2026-06-21T08:16:00.2493349Z             {
2026-06-21T08:16:00.2493497Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.2493611Z               "line": 304
2026-06-21T08:16:00.2493717Z             },
2026-06-21T08:16:00.2493821Z             {
2026-06-21T08:16:00.2493965Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.2494075Z               "line": 562
2026-06-21T08:16:00.2494178Z             },
2026-06-21T08:16:00.2494289Z             {
2026-06-21T08:16:00.2494428Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.2494537Z               "line": 577
2026-06-21T08:16:00.2494643Z             },
2026-06-21T08:16:00.2494752Z             {
2026-06-21T08:16:00.2494893Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.2495012Z               "line": 1224
2026-06-21T08:16:00.2495116Z             },
2026-06-21T08:16:00.2495224Z             {
2026-06-21T08:16:00.2495373Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.2495477Z               "line": 443
2026-06-21T08:16:00.2495587Z             },
2026-06-21T08:16:00.2495697Z             {
2026-06-21T08:16:00.2495839Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.2495960Z               "line": 590
2026-06-21T08:16:00.2496069Z             },
2026-06-21T08:16:00.2496178Z             {
2026-06-21T08:16:00.2496322Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.2496436Z               "line": 731
2026-06-21T08:16:00.2496531Z             }
2026-06-21T08:16:00.2496637Z           ]
2026-06-21T08:16:00.2496746Z         },
2026-06-21T08:16:00.2496841Z         "int": {
2026-06-21T08:16:00.2496961Z           "complete": false,
2026-06-21T08:16:00.2497075Z           "evidence": []
2026-06-21T08:16:00.2497185Z         },
2026-06-21T08:16:00.2497300Z         "unit": {
2026-06-21T08:16:00.2497413Z           "complete": true,
2026-06-21T08:16:00.2497524Z           "evidence": [
2026-06-21T08:16:00.2497628Z             {
2026-06-21T08:16:00.2497774Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.2497890Z               "line": 1155
2026-06-21T08:16:00.2498004Z             },
2026-06-21T08:16:00.2498098Z             {
2026-06-21T08:16:00.2498257Z               "path": "crates/spt-daemon/tests/pumpdeadline.rs",
2026-06-21T08:16:00.2498370Z               "line": 30
2026-06-21T08:16:00.2498466Z             }
2026-06-21T08:16:00.2498576Z           ]
2026-06-21T08:16:00.2498676Z         }
2026-06-21T08:16:00.2498796Z       }
2026-06-21T08:16:00.2498895Z     },
2026-06-21T08:16:00.2499057Z     {
2026-06-21T08:16:00.2499210Z       "id": "REQ-HAZARD-RC-ATTACH-FAILFAST",
2026-06-21T08:16:00.2502545Z       "title": "B1: `spt rc <id>` to a DEAD or non-streaming session fails fast with a clear message, never an INFINITE blank screen. Today rc.rs run_attach (209-231) + pump spawns PUMP_IPC_READER and blocks: the poll times out each slice but the stream never produces output, so the operator sees a permanent blank (operator: fresh wall-f attached, closed tab, then `spt rc wall-f` HUNG — the broker still resolved a session for it). FIX: (a) once B2 lands, gate attach on is_online/status — an offline endpoint yields a clean 'endpoint offline, start it' not an attach; (b) fail-fast — if the attach-open ack / first output does not arrive within a bound, surface a clear message, never an infinite blank; (c) the broker EOFs the attach stream when the session's child is dead, so rc's existing PumpEnd::BrokerGone graceful path (REQ-HAZARD-RC-EOF) catches it. PIN the exact sub-mechanism with a repro test FIRST (dead-session-lingers-in-broker vs reaped-but-rc-waits vs alive-resting-no-wake — the wall-f Windows tab-close: child alive-silent vs dead-not-reaped). (v0.12.0)",
2026-06-21T08:16:00.2502910Z       "requiredStages": [
2026-06-21T08:16:00.2503020Z         "impl",
2026-06-21T08:16:00.2503147Z         "unit",
2026-06-21T08:16:00.2503242Z         "int"
2026-06-21T08:16:00.2503347Z       ],
2026-06-21T08:16:00.2503452Z       "stages": {
2026-06-21T08:16:00.2503566Z         "doc": {
2026-06-21T08:16:00.2503691Z           "complete": false,
2026-06-21T08:16:00.2503800Z           "evidence": []
2026-06-21T08:16:00.2503904Z         },
2026-06-21T08:16:00.2504006Z         "impl": {
2026-06-21T08:16:00.2504120Z           "complete": true,
2026-06-21T08:16:00.2504229Z           "evidence": [
2026-06-21T08:16:00.2504335Z             {
2026-06-21T08:16:00.2504467Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.2504573Z               "line": 718
2026-06-21T08:16:00.2504673Z             },
2026-06-21T08:16:00.2504778Z             {
2026-06-21T08:16:00.2504912Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.2505025Z               "line": 887
2026-06-21T08:16:00.2505149Z             }
2026-06-21T08:16:00.2505246Z           ]
2026-06-21T08:16:00.2505350Z         },
2026-06-21T08:16:00.2505463Z         "int": {
2026-06-21T08:16:00.2505577Z           "complete": true,
2026-06-21T08:16:00.2505695Z           "evidence": [
2026-06-21T08:16:00.2505799Z             {
2026-06-21T08:16:00.2505952Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-21T08:16:00.2506070Z               "line": 420
2026-06-21T08:16:00.2506176Z             }
2026-06-21T08:16:00.2506281Z           ]
2026-06-21T08:16:00.2506380Z         },
2026-06-21T08:16:00.2506486Z         "unit": {
2026-06-21T08:16:00.2506595Z           "complete": true,
2026-06-21T08:16:00.2506719Z           "evidence": [
2026-06-21T08:16:00.2506825Z             {
2026-06-21T08:16:00.2506953Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.2507072Z               "line": 1072
2026-06-21T08:16:00.2507178Z             },
2026-06-21T08:16:00.2507287Z             {
2026-06-21T08:16:00.2507420Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.2507536Z               "line": 1096
2026-06-21T08:16:00.2507645Z             }
2026-06-21T08:16:00.2507745Z           ]
2026-06-21T08:16:00.2507846Z         }
2026-06-21T08:16:00.2507944Z       }
2026-06-21T08:16:00.2508050Z     },
2026-06-21T08:16:00.2508151Z     {
2026-06-21T08:16:00.2508302Z       "id": "REQ-HAZARD-RC-ATTACH-ONLINE-RACE",
2026-06-21T08:16:00.2512075Z       "title": "`spt endpoint run` in an ATTACH/VIEW terminal action attaches BEFORE the freshly-spawned endpoint is online, so the attach races (or outright loses to) the harness bind. ROOT (doyle /diagnose, code-grounded): cmd_endpoint_run (cli.rs) does launch_harness_brokered_in -> (if start: return) -> run_attach with NO await-online between them. launch_harness_brokered_in returns once the harness PROCESS is spawned, but the broker-PTY bind (info status -> STATUS_ONLINE + the live session) lands ASYNC. Both picker attach paths route here with start=false (RunMode::Attach -> cmd_endpoint_run start=false,view=false): Start-now catches the endpoint mid-bringup -> run_attach attempts + loses the handshake race; Resume-from-history catches it still fully OFFLINE -> run_attach's status-gate (REQ-HAZARD-RC-ATTACH-FAILFAST) short-circuits 'offline - nothing to attach' and NEVER attempts. SAME root, two faces (the W4 attach-by-default surfaced both; an online endpoint is unaffected - the picker returns Outcome::Attach, not Run). FIX: in cmd_endpoint_run, when the terminal action is attach/view (NOT start), AWAIT the endpoint online between launch_harness_brokered_in success and run_attach - poll spt_store::info read_info().status to STATUS_ONLINE with a bounded harness-boot deadline (~25s) at a tight interval; on online -> run_attach; on timeout -> ENDPOINT_RUN_ONLINE_TIMEOUT err (do NOT attach a dead bringup). (v0.13.0)",
2026-06-21T08:16:00.2512399Z       "requiredStages": [
2026-06-21T08:16:00.2512508Z         "impl",
2026-06-21T08:16:00.2512614Z         "unit",
2026-06-21T08:16:00.2512723Z         "int"
2026-06-21T08:16:00.2512828Z       ],
2026-06-21T08:16:00.2512939Z       "stages": {
2026-06-21T08:16:00.2513057Z         "doc": {
2026-06-21T08:16:00.2513157Z           "complete": false,
2026-06-21T08:16:00.2513272Z           "evidence": []
2026-06-21T08:16:00.2513376Z         },
2026-06-21T08:16:00.2513485Z         "impl": {
2026-06-21T08:16:00.2513589Z           "complete": true,
2026-06-21T08:16:00.2513707Z           "evidence": [
2026-06-21T08:16:00.2513816Z             {
2026-06-21T08:16:00.2513946Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2514055Z               "line": 1417
2026-06-21T08:16:00.2514164Z             },
2026-06-21T08:16:00.2514266Z             {
2026-06-21T08:16:00.2514398Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2514504Z               "line": 1441
2026-06-21T08:16:00.2514613Z             }
2026-06-21T08:16:00.2514717Z           ]
2026-06-21T08:16:00.2514818Z         },
2026-06-21T08:16:00.2514928Z         "int": {
2026-06-21T08:16:00.2515056Z           "complete": true,
2026-06-21T08:16:00.2515171Z           "evidence": [
2026-06-21T08:16:00.2515323Z             {
2026-06-21T08:16:00.2515482Z               "path": "crates/spt/tests/dummy_harness_e2e.rs",
2026-06-21T08:16:00.2515600Z               "line": 329
2026-06-21T08:16:00.2515704Z             }
2026-06-21T08:16:00.2515806Z           ]
2026-06-21T08:16:00.2515919Z         },
2026-06-21T08:16:00.2516028Z         "unit": {
2026-06-21T08:16:00.2516147Z           "complete": true,
2026-06-21T08:16:00.2516255Z           "evidence": [
2026-06-21T08:16:00.2516354Z             {
2026-06-21T08:16:00.2516494Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2516607Z               "line": 8169
2026-06-21T08:16:00.2516717Z             }
2026-06-21T08:16:00.2516822Z           ]
2026-06-21T08:16:00.2516927Z         }
2026-06-21T08:16:00.2517031Z       }
2026-06-21T08:16:00.2517142Z     },
2026-06-21T08:16:00.2517251Z     {
2026-06-21T08:16:00.2517381Z       "id": "REQ-HAZARD-RC-EOF",
2026-06-21T08:16:00.2521292Z       "title": "A severed broker stream during a live rc session surfaces GRACEFULLY, never as a raw io error that crashes the PTY. The rc read-loop (rc.rs:352-362) continues only on WouldBlock/TimedOut; ANY other read_event_until error — including UnexpectedEof 'failed to fill whole buffer' — returns Err → RC_FAIL → the PTY 'crashes' from the user's view. Confirmed trigger: a deliberate `spt daemon stop` (broker bounce) severs an active rc (perri stopped the daemon to release owlery watch handles). Same severed-broker-stream EOF class as the v0.9.1 seed fix (seed_fail_message) and the listener-death case — spt-core must classify a broker-gone EOF and (a) surface a CLEAR actionable message ('daemon stopped/restarted — re-run / reconnect'), never the raw buffer error, and ideally (b) AUTO-REATTACH to the same session on the fresh broker (the broker is the daemon-lifetime anchor; it returns on the next `spt api` call). FOLD two side-observations: (1) `spt daemon stop` SILENTLY drops active rc/live sessions — warn ('N active session(s) will drop') or graceful-detach on stop; (2) the daemon holds owlery WATCH HANDLES on perch dirs so a torn-down perch dir stays 'Device busy' until a full daemon stop releases them (perri's rt-* cleanup) — a torn-down perch's handle should release without a daemon stop. doyle Finding C, root-caused. (post-v0.10.0)",
2026-06-21T08:16:00.2521695Z       "requiredStages": [
2026-06-21T08:16:00.2521809Z         "impl",
2026-06-21T08:16:00.2521910Z         "unit"
2026-06-21T08:16:00.2522010Z       ],
2026-06-21T08:16:00.2522114Z       "stages": {
2026-06-21T08:16:00.2522221Z         "doc": {
2026-06-21T08:16:00.2522344Z           "complete": false,
2026-06-21T08:16:00.2522453Z           "evidence": []
2026-06-21T08:16:00.2522564Z         },
2026-06-21T08:16:00.2522668Z         "impl": {
2026-06-21T08:16:00.2522787Z           "complete": true,
2026-06-21T08:16:00.2522897Z           "evidence": [
2026-06-21T08:16:00.2523030Z             {
2026-06-21T08:16:00.2523161Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.2523269Z               "line": 910
2026-06-21T08:16:00.2523393Z             }
2026-06-21T08:16:00.2523495Z           ]
2026-06-21T08:16:00.2523602Z         },
2026-06-21T08:16:00.2523708Z         "int": {
2026-06-21T08:16:00.2523828Z           "complete": false,
2026-06-21T08:16:00.2523936Z           "evidence": []
2026-06-21T08:16:00.2524040Z         },
2026-06-21T08:16:00.2524141Z         "unit": {
2026-06-21T08:16:00.2524253Z           "complete": true,
2026-06-21T08:16:00.2524371Z           "evidence": [
2026-06-21T08:16:00.2524482Z             {
2026-06-21T08:16:00.2524610Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.2524715Z               "line": 1112
2026-06-21T08:16:00.2524816Z             }
2026-06-21T08:16:00.2524911Z           ]
2026-06-21T08:16:00.2525015Z         }
2026-06-21T08:16:00.2525126Z       }
2026-06-21T08:16:00.2525230Z     },
2026-06-21T08:16:00.2525340Z     {
2026-06-21T08:16:00.2525502Z       "id": "REQ-HAZARD-RC-INPUT-KEY-ENCODING",
2026-06-21T08:16:00.2530023Z       "title": "An `spt rc` session forwards the Backspace key as the VT DEL byte (0x7f), so the hosted TUI (Claude Code) deletes ONE character — never a whole word. SYMPTOM (operator dogfooding): Backspace in an rc session always behaves like ctrl+Backspace — deletes the entire last word. ROOT (doyle /diagnose, code-grounded, byte PENDING HITL confirm): rc is a RAW VERBATIM byte pump — spawn_stdin_reader (rc.rs:152) reads std::io::stdin() bytes under crossterm raw mode and forwards them unchanged (parse_stdin_chunk only intercepts the ctrl-b detach prefix); there is NO key-event encoding and NO 0x08↔0x7f normalization ANYWHERE in the tree (grep: zero SetConsoleMode / ENABLE_VIRTUAL_TERMINAL_INPUT). On Windows, crossterm enable_raw_mode does NOT set ENABLE_VIRTUAL_TERMINAL_INPUT, so the LEGACY console delivers ^H (0x08, ctrl+h) for Backspace instead of VT DEL (0x7f); Claude Code maps ^H → backward-kill-word → the observed whole-word delete. CONFIRM-FIRST (build the loop): an env-gated hexdump in spawn_stdin_reader (SPT_RC_DEBUG_KEYS) prints the forwarded byte; operator presses Backspace + ctrl+Backspace in a real rc session. FIX CANDIDATES: (a) enable ENABLE_VIRTUAL_TERMINAL_INPUT on the rc stdin console on Windows so the console emits proper VT (Backspace→0x7f, arrows/Home/End as CSI) — cleanest, fixes the whole key map not just Backspace; (b) narrow normalize bare 0x08→0x7f in the rc input path (riskier — a real ctrl+h is also 0x08). Prefer (a) unless it regresses other keys. Add a KNOWN-HAZARDS.md entry on landing. (v0.13.0)",
2026-06-21T08:16:00.2530233Z       "requiredStages": [
2026-06-21T08:16:00.2530343Z         "impl",
2026-06-21T08:16:00.2530451Z         "unit"
2026-06-21T08:16:00.2530553Z       ],
2026-06-21T08:16:00.2530657Z       "stages": {
2026-06-21T08:16:00.2530766Z         "doc": {
2026-06-21T08:16:00.2530882Z           "complete": false,
2026-06-21T08:16:00.2531000Z           "evidence": []
2026-06-21T08:16:00.2531234Z         },
2026-06-21T08:16:00.2531338Z         "impl": {
2026-06-21T08:16:00.2531454Z           "complete": true,
2026-06-21T08:16:00.2531681Z           "evidence": [
2026-06-21T08:16:00.2531785Z             {
2026-06-21T08:16:00.2531908Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.2532026Z               "line": 264
2026-06-21T08:16:00.2532127Z             }
2026-06-21T08:16:00.2532237Z           ]
2026-06-21T08:16:00.2532336Z         },
2026-06-21T08:16:00.2532437Z         "int": {
2026-06-21T08:16:00.2532561Z           "complete": false,
2026-06-21T08:16:00.2532675Z           "evidence": []
2026-06-21T08:16:00.2532781Z         },
2026-06-21T08:16:00.2532881Z         "unit": {
2026-06-21T08:16:00.2532994Z           "complete": true,
2026-06-21T08:16:00.2533105Z           "evidence": [
2026-06-21T08:16:00.2533219Z             {
2026-06-21T08:16:00.2533347Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.2533457Z               "line": 1094
2026-06-21T08:16:00.2533581Z             },
2026-06-21T08:16:00.2533687Z             {
2026-06-21T08:16:00.2533814Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.2533929Z               "line": 1225
2026-06-21T08:16:00.2534040Z             },
2026-06-21T08:16:00.2534157Z             {
2026-06-21T08:16:00.2534282Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.2534398Z               "line": 1227
2026-06-21T08:16:00.2534496Z             }
2026-06-21T08:16:00.2534609Z           ]
2026-06-21T08:16:00.2534715Z         }
2026-06-21T08:16:00.2534822Z       }
2026-06-21T08:16:00.2534926Z     },
2026-06-21T08:16:00.2535032Z     {
2026-06-21T08:16:00.2535175Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-21T08:16:00.2535457Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-21T08:16:00.2535575Z       "requiredStages": [
2026-06-21T08:16:00.2535686Z         "impl",
2026-06-21T08:16:00.2535781Z         "unit"
2026-06-21T08:16:00.2535895Z       ],
2026-06-21T08:16:00.2536005Z       "stages": {
2026-06-21T08:16:00.2536110Z         "doc": {
2026-06-21T08:16:00.2536229Z           "complete": true,
2026-06-21T08:16:00.2536339Z           "evidence": [
2026-06-21T08:16:00.2536443Z             {
2026-06-21T08:16:00.2536583Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.2536696Z               "line": 139
2026-06-21T08:16:00.2536801Z             }
2026-06-21T08:16:00.2536912Z           ]
2026-06-21T08:16:00.2537016Z         },
2026-06-21T08:16:00.2537134Z         "impl": {
2026-06-21T08:16:00.2537253Z           "complete": true,
2026-06-21T08:16:00.2537375Z           "evidence": [
2026-06-21T08:16:00.2537484Z             {
2026-06-21T08:16:00.2537619Z               "path": "crates/spt-store/src/db.rs",
2026-06-21T08:16:00.2537737Z               "line": 29
2026-06-21T08:16:00.2537841Z             },
2026-06-21T08:16:00.2537953Z             {
2026-06-21T08:16:00.2538080Z               "path": "crates/spt-store/src/db.rs",
2026-06-21T08:16:00.2538186Z               "line": 67
2026-06-21T08:16:00.2538291Z             },
2026-06-21T08:16:00.2538400Z             {
2026-06-21T08:16:00.2538548Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T08:16:00.2538652Z               "line": 101
2026-06-21T08:16:00.2538762Z             },
2026-06-21T08:16:00.2538863Z             {
2026-06-21T08:16:00.2539072Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T08:16:00.2539178Z               "line": 30
2026-06-21T08:16:00.2539282Z             },
2026-06-21T08:16:00.2539416Z             {
2026-06-21T08:16:00.2539554Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T08:16:00.2539673Z               "line": 48
2026-06-21T08:16:00.2539779Z             }
2026-06-21T08:16:00.2539883Z           ]
2026-06-21T08:16:00.2539996Z         },
2026-06-21T08:16:00.2540101Z         "int": {
2026-06-21T08:16:00.2540212Z           "complete": false,
2026-06-21T08:16:00.2540320Z           "evidence": []
2026-06-21T08:16:00.2540540Z         },
2026-06-21T08:16:00.2540649Z         "unit": {
2026-06-21T08:16:00.2540854Z           "complete": true,
2026-06-21T08:16:00.2540978Z           "evidence": [
2026-06-21T08:16:00.2541079Z             {
2026-06-21T08:16:00.2541232Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T08:16:00.2541341Z               "line": 162
2026-06-21T08:16:00.2541447Z             }
2026-06-21T08:16:00.2541561Z           ]
2026-06-21T08:16:00.2541665Z         }
2026-06-21T08:16:00.2541771Z       }
2026-06-21T08:16:00.2541869Z     },
2026-06-21T08:16:00.2541975Z     {
2026-06-21T08:16:00.2542114Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-21T08:16:00.2542525Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-21T08:16:00.2542644Z       "requiredStages": [
2026-06-21T08:16:00.2542754Z         "doc",
2026-06-21T08:16:00.2542863Z         "impl",
2026-06-21T08:16:00.2542973Z         "unit"
2026-06-21T08:16:00.2543092Z       ],
2026-06-21T08:16:00.2543197Z       "stages": {
2026-06-21T08:16:00.2543312Z         "doc": {
2026-06-21T08:16:00.2543426Z           "complete": true,
2026-06-21T08:16:00.2543535Z           "evidence": [
2026-06-21T08:16:00.2543641Z             {
2026-06-21T08:16:00.2543770Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.2543874Z               "line": 151
2026-06-21T08:16:00.2543970Z             }
2026-06-21T08:16:00.2544079Z           ]
2026-06-21T08:16:00.2544179Z         },
2026-06-21T08:16:00.2544290Z         "impl": {
2026-06-21T08:16:00.2544412Z           "complete": true,
2026-06-21T08:16:00.2544518Z           "evidence": [
2026-06-21T08:16:00.2544629Z             {
2026-06-21T08:16:00.2544771Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T08:16:00.2544886Z               "line": 22
2026-06-21T08:16:00.2544981Z             }
2026-06-21T08:16:00.2545084Z           ]
2026-06-21T08:16:00.2545194Z         },
2026-06-21T08:16:00.2545313Z         "int": {
2026-06-21T08:16:00.2545421Z           "complete": false,
2026-06-21T08:16:00.2545539Z           "evidence": []
2026-06-21T08:16:00.2545641Z         },
2026-06-21T08:16:00.2545744Z         "unit": {
2026-06-21T08:16:00.2545854Z           "complete": true,
2026-06-21T08:16:00.2545960Z           "evidence": [
2026-06-21T08:16:00.2546064Z             {
2026-06-21T08:16:00.2546213Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T08:16:00.2546322Z               "line": 298
2026-06-21T08:16:00.2546436Z             }
2026-06-21T08:16:00.2546552Z           ]
2026-06-21T08:16:00.2546656Z         }
2026-06-21T08:16:00.2546760Z       }
2026-06-21T08:16:00.2546862Z     },
2026-06-21T08:16:00.2546970Z     {
2026-06-21T08:16:00.2547114Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-21T08:16:00.2547585Z       "title": "Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)",
2026-06-21T08:16:00.2547717Z       "requiredStages": [
2026-06-21T08:16:00.2547823Z         "impl",
2026-06-21T08:16:00.2547940Z         "unit"
2026-06-21T08:16:00.2548039Z       ],
2026-06-21T08:16:00.2548149Z       "stages": {
2026-06-21T08:16:00.2548255Z         "doc": {
2026-06-21T08:16:00.2548368Z           "complete": true,
2026-06-21T08:16:00.2548484Z           "evidence": [
2026-06-21T08:16:00.2548593Z             {
2026-06-21T08:16:00.2548726Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.2548836Z               "line": 145
2026-06-21T08:16:00.2549002Z             }
2026-06-21T08:16:00.2549099Z           ]
2026-06-21T08:16:00.2549199Z         },
2026-06-21T08:16:00.2549322Z         "impl": {
2026-06-21T08:16:00.2549452Z           "complete": true,
2026-06-21T08:16:00.2549561Z           "evidence": [
2026-06-21T08:16:00.2549666Z             {
2026-06-21T08:16:00.2549823Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-21T08:16:00.2549933Z               "line": 160
2026-06-21T08:16:00.2550152Z             },
2026-06-21T08:16:00.2550262Z             {
2026-06-21T08:16:00.2550514Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.2550632Z               "line": 200
2026-06-21T08:16:00.2550739Z             },
2026-06-21T08:16:00.2550848Z             {
2026-06-21T08:16:00.2550991Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2551105Z               "line": 298
2026-06-21T08:16:00.2551214Z             },
2026-06-21T08:16:00.2551325Z             {
2026-06-21T08:16:00.2551472Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-21T08:16:00.2551586Z               "line": 20
2026-06-21T08:16:00.2551696Z             }
2026-06-21T08:16:00.2551797Z           ]
2026-06-21T08:16:00.2551906Z         },
2026-06-21T08:16:00.2552016Z         "int": {
2026-06-21T08:16:00.2552121Z           "complete": false,
2026-06-21T08:16:00.2552235Z           "evidence": []
2026-06-21T08:16:00.2552345Z         },
2026-06-21T08:16:00.2552464Z         "unit": {
2026-06-21T08:16:00.2552584Z           "complete": true,
2026-06-21T08:16:00.2552702Z           "evidence": [
2026-06-21T08:16:00.2552801Z             {
2026-06-21T08:16:00.2552954Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.2553071Z               "line": 937
2026-06-21T08:16:00.2553180Z             },
2026-06-21T08:16:00.2553291Z             {
2026-06-21T08:16:00.2553442Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-21T08:16:00.2553548Z               "line": 88
2026-06-21T08:16:00.2553657Z             },
2026-06-21T08:16:00.2553761Z             {
2026-06-21T08:16:00.2553916Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2554029Z               "line": 851
2026-06-21T08:16:00.2554138Z             },
2026-06-21T08:16:00.2554249Z             {
2026-06-21T08:16:00.2554395Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2554516Z               "line": 870
2026-06-21T08:16:00.2554620Z             },
2026-06-21T08:16:00.2554720Z             {
2026-06-21T08:16:00.2554874Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-21T08:16:00.2554982Z               "line": 279
2026-06-21T08:16:00.2555088Z             },
2026-06-21T08:16:00.2555189Z             {
2026-06-21T08:16:00.2555331Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-21T08:16:00.2555442Z               "line": 82
2026-06-21T08:16:00.2555556Z             },
2026-06-21T08:16:00.2555659Z             {
2026-06-21T08:16:00.2555806Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-21T08:16:00.2555924Z               "line": 99
2026-06-21T08:16:00.2556028Z             },
2026-06-21T08:16:00.2556133Z             {
2026-06-21T08:16:00.2556276Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-21T08:16:00.2556395Z               "line": 119
2026-06-21T08:16:00.2556491Z             }
2026-06-21T08:16:00.2556596Z           ]
2026-06-21T08:16:00.2556700Z         }
2026-06-21T08:16:00.2556806Z       }
2026-06-21T08:16:00.2556920Z     },
2026-06-21T08:16:00.2557020Z     {
2026-06-21T08:16:00.2557172Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-21T08:16:00.2558490Z       "title": "A dead node identity's registry rows must decay: only the per-(endpoint,node) epoch lease supersedes rows, so without eviction a vanished node's rows are immortal and poison bare-id resolution with phantom AcrossNodes ambiguity — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window; own rows never decay; a revived node re-inserts from its durable epoch within one pump cadence (4.10)",
2026-06-21T08:16:00.2558618Z       "requiredStages": [
2026-06-21T08:16:00.2558719Z         "doc",
2026-06-21T08:16:00.2558829Z         "impl",
2026-06-21T08:16:00.2558933Z         "unit"
2026-06-21T08:16:00.2559125Z       ],
2026-06-21T08:16:00.2559243Z       "stages": {
2026-06-21T08:16:00.2559349Z         "doc": {
2026-06-21T08:16:00.2559582Z           "complete": true,
2026-06-21T08:16:00.2559701Z           "evidence": [
2026-06-21T08:16:00.2559806Z             {
2026-06-21T08:16:00.2560040Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.2560149Z               "line": 157
2026-06-21T08:16:00.2560260Z             }
2026-06-21T08:16:00.2560369Z           ]
2026-06-21T08:16:00.2560474Z         },
2026-06-21T08:16:00.2560589Z         "impl": {
2026-06-21T08:16:00.2560698Z           "complete": true,
2026-06-21T08:16:00.2560817Z           "evidence": [
2026-06-21T08:16:00.2560914Z             {
2026-06-21T08:16:00.2561069Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-21T08:16:00.2561173Z               "line": 137
2026-06-21T08:16:00.2561269Z             },
2026-06-21T08:16:00.2561374Z             {
2026-06-21T08:16:00.2561526Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.2561642Z               "line": 564
2026-06-21T08:16:00.2561751Z             },
2026-06-21T08:16:00.2561861Z             {
2026-06-21T08:16:00.2562018Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.2562127Z               "line": 571
2026-06-21T08:16:00.2562238Z             },
2026-06-21T08:16:00.2562342Z             {
2026-06-21T08:16:00.2562495Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2562605Z               "line": 227
2026-06-21T08:16:00.2562709Z             }
2026-06-21T08:16:00.2562815Z           ]
2026-06-21T08:16:00.2562924Z         },
2026-06-21T08:16:00.2563038Z         "int": {
2026-06-21T08:16:00.2563159Z           "complete": false,
2026-06-21T08:16:00.2563262Z           "evidence": []
2026-06-21T08:16:00.2563366Z         },
2026-06-21T08:16:00.2563481Z         "unit": {
2026-06-21T08:16:00.2563603Z           "complete": true,
2026-06-21T08:16:00.2563711Z           "evidence": [
2026-06-21T08:16:00.2563821Z             {
2026-06-21T08:16:00.2563974Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.2564093Z               "line": 1622
2026-06-21T08:16:00.2564199Z             },
2026-06-21T08:16:00.2564312Z             {
2026-06-21T08:16:00.2564471Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.2564575Z               "line": 1680
2026-06-21T08:16:00.2564694Z             },
2026-06-21T08:16:00.2564800Z             {
2026-06-21T08:16:00.2564942Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2565057Z               "line": 883
2026-06-21T08:16:00.2565162Z             }
2026-06-21T08:16:00.2565276Z           ]
2026-06-21T08:16:00.2565405Z         }
2026-06-21T08:16:00.2565537Z       }
2026-06-21T08:16:00.2565643Z     },
2026-06-21T08:16:00.2565754Z     {
2026-06-21T08:16:00.2565901Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-21T08:16:00.2566121Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-21T08:16:00.2566252Z       "requiredStages": [
2026-06-21T08:16:00.2566352Z         "impl",
2026-06-21T08:16:00.2566461Z         "unit"
2026-06-21T08:16:00.2566574Z       ],
2026-06-21T08:16:00.2566732Z       "stages": {
2026-06-21T08:16:00.2566846Z         "doc": {
2026-06-21T08:16:00.2566965Z           "complete": false,
2026-06-21T08:16:00.2567084Z           "evidence": []
2026-06-21T08:16:00.2567193Z         },
2026-06-21T08:16:00.2567300Z         "impl": {
2026-06-21T08:16:00.2567418Z           "complete": true,
2026-06-21T08:16:00.2567532Z           "evidence": [
2026-06-21T08:16:00.2567638Z             {
2026-06-21T08:16:00.2567786Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T08:16:00.2567899Z               "line": 15
2026-06-21T08:16:00.2568010Z             },
2026-06-21T08:16:00.2568119Z             {
2026-06-21T08:16:00.2568263Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T08:16:00.2568381Z               "line": 55
2026-06-21T08:16:00.2568486Z             },
2026-06-21T08:16:00.2568631Z             {
2026-06-21T08:16:00.2568886Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T08:16:00.2569074Z               "line": 66
2026-06-21T08:16:00.2569289Z             },
2026-06-21T08:16:00.2569384Z             {
2026-06-21T08:16:00.2569541Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T08:16:00.2569656Z               "line": 115
2026-06-21T08:16:00.2569760Z             },
2026-06-21T08:16:00.2569871Z             {
2026-06-21T08:16:00.2570018Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T08:16:00.2570132Z               "line": 138
2026-06-21T08:16:00.2570234Z             }
2026-06-21T08:16:00.2570333Z           ]
2026-06-21T08:16:00.2570442Z         },
2026-06-21T08:16:00.2570544Z         "int": {
2026-06-21T08:16:00.2570667Z           "complete": false,
2026-06-21T08:16:00.2570776Z           "evidence": []
2026-06-21T08:16:00.2570882Z         },
2026-06-21T08:16:00.2570986Z         "unit": {
2026-06-21T08:16:00.2571106Z           "complete": true,
2026-06-21T08:16:00.2571234Z           "evidence": [
2026-06-21T08:16:00.2571339Z             {
2026-06-21T08:16:00.2571484Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T08:16:00.2571605Z               "line": 363
2026-06-21T08:16:00.2571709Z             },
2026-06-21T08:16:00.2571806Z             {
2026-06-21T08:16:00.2571953Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T08:16:00.2572067Z               "line": 369
2026-06-21T08:16:00.2572168Z             },
2026-06-21T08:16:00.2572273Z             {
2026-06-21T08:16:00.2572406Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T08:16:00.2572521Z               "line": 383
2026-06-21T08:16:00.2572625Z             },
2026-06-21T08:16:00.2572735Z             {
2026-06-21T08:16:00.2572883Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T08:16:00.2572992Z               "line": 392
2026-06-21T08:16:00.2573103Z             },
2026-06-21T08:16:00.2573198Z             {
2026-06-21T08:16:00.2576755Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T08:16:00.2576922Z               "line": 195
2026-06-21T08:16:00.2577035Z             },
2026-06-21T08:16:00.2577148Z             {
2026-06-21T08:16:00.2577307Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T08:16:00.2577429Z               "line": 208
2026-06-21T08:16:00.2577530Z             },
2026-06-21T08:16:00.2577631Z             {
2026-06-21T08:16:00.2577787Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T08:16:00.2577893Z               "line": 271
2026-06-21T08:16:00.2578003Z             },
2026-06-21T08:16:00.2578102Z             {
2026-06-21T08:16:00.2578265Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T08:16:00.2578365Z               "line": 290
2026-06-21T08:16:00.2578474Z             },
2026-06-21T08:16:00.2578580Z             {
2026-06-21T08:16:00.2578726Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T08:16:00.2578837Z               "line": 319
2026-06-21T08:16:00.2579027Z             }
2026-06-21T08:16:00.2579138Z           ]
2026-06-21T08:16:00.2579233Z         }
2026-06-21T08:16:00.2579375Z       }
2026-06-21T08:16:00.2579479Z     },
2026-06-21T08:16:00.2579578Z     {
2026-06-21T08:16:00.2579710Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-21T08:16:00.2580011Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-21T08:16:00.2580131Z       "requiredStages": [
2026-06-21T08:16:00.2580245Z         "impl",
2026-06-21T08:16:00.2580354Z         "unit",
2026-06-21T08:16:00.2580460Z         "int"
2026-06-21T08:16:00.2580565Z       ],
2026-06-21T08:16:00.2580673Z       "stages": {
2026-06-21T08:16:00.2580780Z         "doc": {
2026-06-21T08:16:00.2580903Z           "complete": false,
2026-06-21T08:16:00.2581017Z           "evidence": []
2026-06-21T08:16:00.2581123Z         },
2026-06-21T08:16:00.2581223Z         "impl": {
2026-06-21T08:16:00.2581336Z           "complete": true,
2026-06-21T08:16:00.2581594Z           "evidence": [
2026-06-21T08:16:00.2581700Z             {
2026-06-21T08:16:00.2581846Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.2582048Z               "line": 474
2026-06-21T08:16:00.2582156Z             },
2026-06-21T08:16:00.2582265Z             {
2026-06-21T08:16:00.2582409Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.2582523Z               "line": 916
2026-06-21T08:16:00.2582623Z             },
2026-06-21T08:16:00.2582733Z             {
2026-06-21T08:16:00.2582871Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.2582986Z               "line": 961
2026-06-21T08:16:00.2583091Z             },
2026-06-21T08:16:00.2583190Z             {
2026-06-21T08:16:00.2583335Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.2583438Z               "line": 986
2026-06-21T08:16:00.2583543Z             },
2026-06-21T08:16:00.2583650Z             {
2026-06-21T08:16:00.2583796Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.2583921Z               "line": 1760
2026-06-21T08:16:00.2584030Z             },
2026-06-21T08:16:00.2584139Z             {
2026-06-21T08:16:00.2584284Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.2584396Z               "line": 2005
2026-06-21T08:16:00.2584496Z             },
2026-06-21T08:16:00.2584596Z             {
2026-06-21T08:16:00.2584742Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.2584851Z               "line": 2136
2026-06-21T08:16:00.2584956Z             },
2026-06-21T08:16:00.2585061Z             {
2026-06-21T08:16:00.2585204Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.2585315Z               "line": 2184
2026-06-21T08:16:00.2585418Z             },
2026-06-21T08:16:00.2585523Z             {
2026-06-21T08:16:00.2585662Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-21T08:16:00.2585771Z               "line": 46
2026-06-21T08:16:00.2585882Z             },
2026-06-21T08:16:00.2585987Z             {
2026-06-21T08:16:00.2586124Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-21T08:16:00.2586249Z               "line": 200
2026-06-21T08:16:00.2586349Z             },
2026-06-21T08:16:00.2586448Z             {
2026-06-21T08:16:00.2586592Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-21T08:16:00.2586706Z               "line": 132
2026-06-21T08:16:00.2586817Z             },
2026-06-21T08:16:00.2586916Z             {
2026-06-21T08:16:00.2587059Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T08:16:00.2587170Z               "line": 137
2026-06-21T08:16:00.2587278Z             },
2026-06-21T08:16:00.2587372Z             {
2026-06-21T08:16:00.2587510Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T08:16:00.2587623Z               "line": 183
2026-06-21T08:16:00.2587723Z             }
2026-06-21T08:16:00.2587823Z           ]
2026-06-21T08:16:00.2587933Z         },
2026-06-21T08:16:00.2588037Z         "int": {
2026-06-21T08:16:00.2588158Z           "complete": true,
2026-06-21T08:16:00.2588272Z           "evidence": [
2026-06-21T08:16:00.2588366Z             {
2026-06-21T08:16:00.2588529Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-21T08:16:00.2588629Z               "line": 27
2026-06-21T08:16:00.2588729Z             },
2026-06-21T08:16:00.2588835Z             {
2026-06-21T08:16:00.2589064Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-21T08:16:00.2589182Z               "line": 148
2026-06-21T08:16:00.2589287Z             },
2026-06-21T08:16:00.2589393Z             {
2026-06-21T08:16:00.2589544Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-21T08:16:00.2589660Z               "line": 200
2026-06-21T08:16:00.2589765Z             }
2026-06-21T08:16:00.2589868Z           ]
2026-06-21T08:16:00.2589963Z         },
2026-06-21T08:16:00.2590068Z         "unit": {
2026-06-21T08:16:00.2590185Z           "complete": true,
2026-06-21T08:16:00.2590405Z           "evidence": [
2026-06-21T08:16:00.2590509Z             {
2026-06-21T08:16:00.2590767Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-21T08:16:00.2590880Z               "line": 366
2026-06-21T08:16:00.2590987Z             },
2026-06-21T08:16:00.2591096Z             {
2026-06-21T08:16:00.2591238Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-21T08:16:00.2591344Z               "line": 398
2026-06-21T08:16:00.2591453Z             },
2026-06-21T08:16:00.2591544Z             {
2026-06-21T08:16:00.2591693Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-21T08:16:00.2591802Z               "line": 419
2026-06-21T08:16:00.2591911Z             },
2026-06-21T08:16:00.2592017Z             {
2026-06-21T08:16:00.2592163Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T08:16:00.2592270Z               "line": 628
2026-06-21T08:16:00.2592374Z             },
2026-06-21T08:16:00.2592478Z             {
2026-06-21T08:16:00.2592628Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-21T08:16:00.2592740Z               "line": 289
2026-06-21T08:16:00.2592848Z             },
2026-06-21T08:16:00.2592950Z             {
2026-06-21T08:16:00.2593097Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-21T08:16:00.2593207Z               "line": 230
2026-06-21T08:16:00.2593317Z             },
2026-06-21T08:16:00.2593416Z             {
2026-06-21T08:16:00.2593551Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T08:16:00.2593670Z               "line": 526
2026-06-21T08:16:00.2593769Z             },
2026-06-21T08:16:00.2593870Z             {
2026-06-21T08:16:00.2594013Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T08:16:00.2594118Z               "line": 556
2026-06-21T08:16:00.2594224Z             }
2026-06-21T08:16:00.2594327Z           ]
2026-06-21T08:16:00.2594432Z         }
2026-06-21T08:16:00.2594539Z       }
2026-06-21T08:16:00.2594646Z     },
2026-06-21T08:16:00.2594757Z     {
2026-06-21T08:16:00.2594905Z       "id": "REQ-HAZARD-ROLLBACK-STATE-COMPAT",
2026-06-21T08:16:00.2596670Z       "title": "A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.",
2026-06-21T08:16:00.2596799Z       "requiredStages": [
2026-06-21T08:16:00.2596932Z         "doc",
2026-06-21T08:16:00.2597043Z         "impl",
2026-06-21T08:16:00.2597152Z         "unit"
2026-06-21T08:16:00.2597276Z       ],
2026-06-21T08:16:00.2597382Z       "stages": {
2026-06-21T08:16:00.2597486Z         "doc": {
2026-06-21T08:16:00.2597615Z           "complete": true,
2026-06-21T08:16:00.2597735Z           "evidence": [
2026-06-21T08:16:00.2597843Z             {
2026-06-21T08:16:00.2597985Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.2598099Z               "line": 314
2026-06-21T08:16:00.2598202Z             }
2026-06-21T08:16:00.2598312Z           ]
2026-06-21T08:16:00.2598413Z         },
2026-06-21T08:16:00.2598517Z         "impl": {
2026-06-21T08:16:00.2598641Z           "complete": true,
2026-06-21T08:16:00.2598751Z           "evidence": [
2026-06-21T08:16:00.2598850Z             {
2026-06-21T08:16:00.2599080Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-21T08:16:00.2599189Z               "line": 33
2026-06-21T08:16:00.2599294Z             },
2026-06-21T08:16:00.2599395Z             {
2026-06-21T08:16:00.2599546Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-21T08:16:00.2599662Z               "line": 39
2026-06-21T08:16:00.2599757Z             }
2026-06-21T08:16:00.2599968Z           ]
2026-06-21T08:16:00.2600071Z         },
2026-06-21T08:16:00.2600176Z         "int": {
2026-06-21T08:16:00.2600386Z           "complete": false,
2026-06-21T08:16:00.2600495Z           "evidence": []
2026-06-21T08:16:00.2600600Z         },
2026-06-21T08:16:00.2600713Z         "unit": {
2026-06-21T08:16:00.2600826Z           "complete": true,
2026-06-21T08:16:00.2600931Z           "evidence": [
2026-06-21T08:16:00.2601037Z             {
2026-06-21T08:16:00.2601198Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-21T08:16:00.2601304Z               "line": 95
2026-06-21T08:16:00.2601408Z             }
2026-06-21T08:16:00.2601512Z           ]
2026-06-21T08:16:00.2601613Z         }
2026-06-21T08:16:00.2601718Z       }
2026-06-21T08:16:00.2601818Z     },
2026-06-21T08:16:00.2601914Z     {
2026-06-21T08:16:00.2602038Z       "id": "REQ-HAZARD-ROSTER-GHOST",
2026-06-21T08:16:00.2604469Z       "title": "A LOCAL subnet roster entry whose backing perch is erased does NOT keep advertising Active (no phantom perch-less endpoint). `api session-end <id> --erase` removes the perch (owlery dir gone) but the subnet roster (identity/registry/<subnet>.json) keeps the endpoint's instance row ACTIVE with no backing perch; `endpoint stop` says 'address unregistered' yet the line persists; no CLI verb forgets a roster entry, and a hand-edit is re-added by the single-writer daemon advertiser. FIX: daemon-side self-heal — the advertiser DROPS/forgets a LOCAL roster entry whose backing perch no longer exists (stops advertising it Active), and/or a `forget`/evict verb; verify whether the epoch lease eventually evicts it (slow-self-heal) vs a real leak and scope accordingly. doyle secondary finding (perri). (post-v0.10.0)",
2026-06-21T08:16:00.2604602Z       "requiredStages": [
2026-06-21T08:16:00.2604716Z         "impl",
2026-06-21T08:16:00.2604822Z         "unit"
2026-06-21T08:16:00.2604926Z       ],
2026-06-21T08:16:00.2605026Z       "stages": {
2026-06-21T08:16:00.2605155Z         "doc": {
2026-06-21T08:16:00.2605269Z           "complete": false,
2026-06-21T08:16:00.2605384Z           "evidence": []
2026-06-21T08:16:00.2605493Z         },
2026-06-21T08:16:00.2605607Z         "impl": {
2026-06-21T08:16:00.2605726Z           "complete": true,
2026-06-21T08:16:00.2605843Z           "evidence": [
2026-06-21T08:16:00.2605956Z             {
2026-06-21T08:16:00.2606120Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.2606233Z               "line": 488
2026-06-21T08:16:00.2606339Z             }
2026-06-21T08:16:00.2606449Z           ]
2026-06-21T08:16:00.2606558Z         },
2026-06-21T08:16:00.2606663Z         "int": {
2026-06-21T08:16:00.2606787Z           "complete": false,
2026-06-21T08:16:00.2606901Z           "evidence": []
2026-06-21T08:16:00.2607007Z         },
2026-06-21T08:16:00.2607107Z         "unit": {
2026-06-21T08:16:00.2607220Z           "complete": true,
2026-06-21T08:16:00.2607336Z           "evidence": [
2026-06-21T08:16:00.2607445Z             {
2026-06-21T08:16:00.2607603Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.2607721Z               "line": 1466
2026-06-21T08:16:00.2607817Z             }
2026-06-21T08:16:00.2607923Z           ]
2026-06-21T08:16:00.2608027Z         }
2026-06-21T08:16:00.2608136Z       }
2026-06-21T08:16:00.2608242Z     },
2026-06-21T08:16:00.2608347Z     {
2026-06-21T08:16:00.2608474Z       "id": "REQ-HAZARD-SELF-ELEVATE",
2026-06-21T08:16:00.2610713Z       "title": "Self-elevation (REQ-ELEVATE-1) re-runs the EXACT original invocation with the binary's ABSOLUTE exe path — never widening privilege scope, never adding/altering args, never via a PATH-resolved bare name, never via a shell-interpolated command string (argv-array only, no `sh -c`); the elevated child drops state back to the user (composes with the 5.7 de-elevation) and NEVER re-elevates (loop-safe: decide_elevation_path returns AlreadyElevated whenever the process is already Elevated, on every OS). The user's UAC/polkit/sudo prompt is the only consent gate — we never bypass it; the print-hint floor prints the absolute-path command too. The unprivileged parent never depends on (pipes/captures) the privileged child's stdout.",
2026-06-21T08:16:00.2611202Z       "requiredStages": [
2026-06-21T08:16:00.2611301Z         "unit"
2026-06-21T08:16:00.2611400Z       ],
2026-06-21T08:16:00.2611510Z       "stages": {
2026-06-21T08:16:00.2611616Z         "doc": {
2026-06-21T08:16:00.2611739Z           "complete": false,
2026-06-21T08:16:00.2611850Z           "evidence": []
2026-06-21T08:16:00.2611959Z         },
2026-06-21T08:16:00.2612058Z         "impl": {
2026-06-21T08:16:00.2612178Z           "complete": true,
2026-06-21T08:16:00.2612297Z           "evidence": [
2026-06-21T08:16:00.2612402Z             {
2026-06-21T08:16:00.2612540Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2612645Z               "line": 3520
2026-06-21T08:16:00.2612751Z             },
2026-06-21T08:16:00.2612860Z             {
2026-06-21T08:16:00.2613017Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2613128Z               "line": 3572
2026-06-21T08:16:00.2613246Z             },
2026-06-21T08:16:00.2613351Z             {
2026-06-21T08:16:00.2613480Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2613590Z               "line": 3617
2026-06-21T08:16:00.2613691Z             },
2026-06-21T08:16:00.2613800Z             {
2026-06-21T08:16:00.2613945Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.2614046Z               "line": 92
2026-06-21T08:16:00.2614157Z             },
2026-06-21T08:16:00.2614255Z             {
2026-06-21T08:16:00.2614400Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.2614509Z               "line": 148
2026-06-21T08:16:00.2614618Z             },
2026-06-21T08:16:00.2614719Z             {
2026-06-21T08:16:00.2614847Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.2614961Z               "line": 192
2026-06-21T08:16:00.2615072Z             },
2026-06-21T08:16:00.2615181Z             {
2026-06-21T08:16:00.2615306Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.2615428Z               "line": 200
2026-06-21T08:16:00.2615533Z             },
2026-06-21T08:16:00.2615635Z             {
2026-06-21T08:16:00.2615771Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.2615882Z               "line": 211
2026-06-21T08:16:00.2615993Z             },
2026-06-21T08:16:00.2616095Z             {
2026-06-21T08:16:00.2616228Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.2616348Z               "line": 265
2026-06-21T08:16:00.2616450Z             },
2026-06-21T08:16:00.2616555Z             {
2026-06-21T08:16:00.2616685Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.2616798Z               "line": 279
2026-06-21T08:16:00.2616904Z             }
2026-06-21T08:16:00.2617004Z           ]
2026-06-21T08:16:00.2617113Z         },
2026-06-21T08:16:00.2617228Z         "int": {
2026-06-21T08:16:00.2617347Z           "complete": false,
2026-06-21T08:16:00.2617466Z           "evidence": []
2026-06-21T08:16:00.2617582Z         },
2026-06-21T08:16:00.2617691Z         "unit": {
2026-06-21T08:16:00.2617800Z           "complete": true,
2026-06-21T08:16:00.2617906Z           "evidence": [
2026-06-21T08:16:00.2618005Z             {
2026-06-21T08:16:00.2618138Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.2618254Z               "line": 419
2026-06-21T08:16:00.2618353Z             },
2026-06-21T08:16:00.2618448Z             {
2026-06-21T08:16:00.2618583Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.2618696Z               "line": 470
2026-06-21T08:16:00.2618793Z             },
2026-06-21T08:16:00.2618898Z             {
2026-06-21T08:16:00.2619125Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.2619233Z               "line": 499
2026-06-21T08:16:00.2619337Z             },
2026-06-21T08:16:00.2619547Z             {
2026-06-21T08:16:00.2619685Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.2619890Z               "line": 526
2026-06-21T08:16:00.2619994Z             }
2026-06-21T08:16:00.2620100Z           ]
2026-06-21T08:16:00.2620205Z         }
2026-06-21T08:16:00.2620295Z       }
2026-06-21T08:16:00.2620391Z     },
2026-06-21T08:16:00.2620496Z     {
2026-06-21T08:16:00.2620634Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-21T08:16:00.2620848Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-21T08:16:00.2620967Z       "requiredStages": [
2026-06-21T08:16:00.2621078Z         "impl",
2026-06-21T08:16:00.2621177Z         "unit"
2026-06-21T08:16:00.2621282Z       ],
2026-06-21T08:16:00.2621388Z       "stages": {
2026-06-21T08:16:00.2621492Z         "doc": {
2026-06-21T08:16:00.2621615Z           "complete": false,
2026-06-21T08:16:00.2621730Z           "evidence": []
2026-06-21T08:16:00.2621828Z         },
2026-06-21T08:16:00.2621946Z         "impl": {
2026-06-21T08:16:00.2622061Z           "complete": true,
2026-06-21T08:16:00.2622180Z           "evidence": [
2026-06-21T08:16:00.2622289Z             {
2026-06-21T08:16:00.2622457Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.2622566Z               "line": 62
2026-06-21T08:16:00.2622667Z             },
2026-06-21T08:16:00.2622767Z             {
2026-06-21T08:16:00.2622928Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.2623039Z               "line": 71
2026-06-21T08:16:00.2623143Z             },
2026-06-21T08:16:00.2623243Z             {
2026-06-21T08:16:00.2623396Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.2623520Z               "line": 80
2026-06-21T08:16:00.2623621Z             },
2026-06-21T08:16:00.2623730Z             {
2026-06-21T08:16:00.2623882Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.2623998Z               "line": 88
2026-06-21T08:16:00.2624111Z             },
2026-06-21T08:16:00.2624212Z             {
2026-06-21T08:16:00.2624360Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2624477Z               "line": 33
2026-06-21T08:16:00.2624572Z             },
2026-06-21T08:16:00.2624678Z             {
2026-06-21T08:16:00.2624820Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2624931Z               "line": 65
2026-06-21T08:16:00.2625036Z             },
2026-06-21T08:16:00.2625144Z             {
2026-06-21T08:16:00.2625289Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2625398Z               "line": 74
2026-06-21T08:16:00.2625507Z             },
2026-06-21T08:16:00.2625603Z             {
2026-06-21T08:16:00.2625750Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2625846Z               "line": 93
2026-06-21T08:16:00.2625956Z             },
2026-06-21T08:16:00.2626065Z             {
2026-06-21T08:16:00.2626204Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2626322Z               "line": 102
2026-06-21T08:16:00.2626437Z             },
2026-06-21T08:16:00.2626543Z             {
2026-06-21T08:16:00.2626679Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2626788Z               "line": 111
2026-06-21T08:16:00.2626899Z             },
2026-06-21T08:16:00.2627006Z             {
2026-06-21T08:16:00.2627149Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2627260Z               "line": 122
2026-06-21T08:16:00.2627368Z             },
2026-06-21T08:16:00.2627469Z             {
2026-06-21T08:16:00.2627617Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2627726Z               "line": 140
2026-06-21T08:16:00.2627827Z             },
2026-06-21T08:16:00.2627936Z             {
2026-06-21T08:16:00.2628069Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2628184Z               "line": 149
2026-06-21T08:16:00.2628360Z             },
2026-06-21T08:16:00.2628461Z             {
2026-06-21T08:16:00.2628608Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2628795Z               "line": 158
2026-06-21T08:16:00.2628893Z             },
2026-06-21T08:16:00.2629076Z             {
2026-06-21T08:16:00.2629222Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2629333Z               "line": 169
2026-06-21T08:16:00.2629444Z             },
2026-06-21T08:16:00.2629547Z             {
2026-06-21T08:16:00.2629675Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2629794Z               "line": 177
2026-06-21T08:16:00.2629897Z             },
2026-06-21T08:16:00.2630002Z             {
2026-06-21T08:16:00.2630146Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2630249Z               "line": 186
2026-06-21T08:16:00.2630355Z             },
2026-06-21T08:16:00.2630460Z             {
2026-06-21T08:16:00.2630602Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2630723Z               "line": 195
2026-06-21T08:16:00.2630831Z             },
2026-06-21T08:16:00.2630946Z             {
2026-06-21T08:16:00.2631079Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2631198Z               "line": 204
2026-06-21T08:16:00.2631295Z             },
2026-06-21T08:16:00.2631404Z             {
2026-06-21T08:16:00.2631532Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2631648Z               "line": 216
2026-06-21T08:16:00.2631756Z             },
2026-06-21T08:16:00.2631862Z             {
2026-06-21T08:16:00.2632006Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2632114Z               "line": 223
2026-06-21T08:16:00.2632217Z             },
2026-06-21T08:16:00.2632323Z             {
2026-06-21T08:16:00.2632464Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2632573Z               "line": 232
2026-06-21T08:16:00.2632679Z             },
2026-06-21T08:16:00.2632788Z             {
2026-06-21T08:16:00.2632932Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2633046Z               "line": 239
2026-06-21T08:16:00.2633140Z             },
2026-06-21T08:16:00.2633247Z             {
2026-06-21T08:16:00.2633394Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2633488Z               "line": 306
2026-06-21T08:16:00.2633594Z             },
2026-06-21T08:16:00.2633698Z             {
2026-06-21T08:16:00.2633832Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2633937Z               "line": 318
2026-06-21T08:16:00.2634052Z             },
2026-06-21T08:16:00.2634152Z             {
2026-06-21T08:16:00.2634285Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2634395Z               "line": 405
2026-06-21T08:16:00.2634501Z             }
2026-06-21T08:16:00.2634605Z           ]
2026-06-21T08:16:00.2634700Z         },
2026-06-21T08:16:00.2634806Z         "int": {
2026-06-21T08:16:00.2634920Z           "complete": false,
2026-06-21T08:16:00.2635028Z           "evidence": []
2026-06-21T08:16:00.2635147Z         },
2026-06-21T08:16:00.2635253Z         "unit": {
2026-06-21T08:16:00.2635366Z           "complete": true,
2026-06-21T08:16:00.2635477Z           "evidence": [
2026-06-21T08:16:00.2635591Z             {
2026-06-21T08:16:00.2635733Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2635834Z               "line": 487
2026-06-21T08:16:00.2635944Z             },
2026-06-21T08:16:00.2636048Z             {
2026-06-21T08:16:00.2636192Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2636306Z               "line": 528
2026-06-21T08:16:00.2636416Z             },
2026-06-21T08:16:00.2636521Z             {
2026-06-21T08:16:00.2636658Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2636774Z               "line": 541
2026-06-21T08:16:00.2636878Z             },
2026-06-21T08:16:00.2637089Z             {
2026-06-21T08:16:00.2637230Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2637425Z               "line": 627
2026-06-21T08:16:00.2637529Z             }
2026-06-21T08:16:00.2637632Z           ]
2026-06-21T08:16:00.2637738Z         }
2026-06-21T08:16:00.2637839Z       }
2026-06-21T08:16:00.2637947Z     },
2026-06-21T08:16:00.2638052Z     {
2026-06-21T08:16:00.2638186Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-21T08:16:00.2638401Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-21T08:16:00.2638510Z       "requiredStages": [
2026-06-21T08:16:00.2638615Z         "impl",
2026-06-21T08:16:00.2638721Z         "unit"
2026-06-21T08:16:00.2638816Z       ],
2026-06-21T08:16:00.2638930Z       "stages": {
2026-06-21T08:16:00.2639115Z         "doc": {
2026-06-21T08:16:00.2639225Z           "complete": false,
2026-06-21T08:16:00.2639336Z           "evidence": []
2026-06-21T08:16:00.2639444Z         },
2026-06-21T08:16:00.2639559Z         "impl": {
2026-06-21T08:16:00.2639679Z           "complete": true,
2026-06-21T08:16:00.2639787Z           "evidence": [
2026-06-21T08:16:00.2639893Z             {
2026-06-21T08:16:00.2640042Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T08:16:00.2640145Z               "line": 175
2026-06-21T08:16:00.2640245Z             },
2026-06-21T08:16:00.2640349Z             {
2026-06-21T08:16:00.2640504Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.2640614Z               "line": 171
2026-06-21T08:16:00.2640716Z             }
2026-06-21T08:16:00.2640824Z           ]
2026-06-21T08:16:00.2640930Z         },
2026-06-21T08:16:00.2641049Z         "int": {
2026-06-21T08:16:00.2641158Z           "complete": false,
2026-06-21T08:16:00.2641278Z           "evidence": []
2026-06-21T08:16:00.2641383Z         },
2026-06-21T08:16:00.2641491Z         "unit": {
2026-06-21T08:16:00.2641612Z           "complete": true,
2026-06-21T08:16:00.2641716Z           "evidence": [
2026-06-21T08:16:00.2641830Z             {
2026-06-21T08:16:00.2641959Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T08:16:00.2642083Z               "line": 297
2026-06-21T08:16:00.2642184Z             },
2026-06-21T08:16:00.2642297Z             {
2026-06-21T08:16:00.2642450Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.2642561Z               "line": 836
2026-06-21T08:16:00.2642664Z             },
2026-06-21T08:16:00.2642758Z             {
2026-06-21T08:16:00.2642906Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.2643033Z               "line": 849
2026-06-21T08:16:00.2643138Z             }
2026-06-21T08:16:00.2643244Z           ]
2026-06-21T08:16:00.2643343Z         }
2026-06-21T08:16:00.2643453Z       }
2026-06-21T08:16:00.2643549Z     },
2026-06-21T08:16:00.2643653Z     {
2026-06-21T08:16:00.2643782Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-21T08:16:00.2643939Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-21T08:16:00.2644068Z       "requiredStages": [
2026-06-21T08:16:00.2644173Z         "impl",
2026-06-21T08:16:00.2644283Z         "unit"
2026-06-21T08:16:00.2644382Z       ],
2026-06-21T08:16:00.2644488Z       "stages": {
2026-06-21T08:16:00.2644592Z         "doc": {
2026-06-21T08:16:00.2644717Z           "complete": false,
2026-06-21T08:16:00.2644826Z           "evidence": []
2026-06-21T08:16:00.2644931Z         },
2026-06-21T08:16:00.2645042Z         "impl": {
2026-06-21T08:16:00.2645160Z           "complete": true,
2026-06-21T08:16:00.2645274Z           "evidence": [
2026-06-21T08:16:00.2645380Z             {
2026-06-21T08:16:00.2645522Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2645640Z               "line": 116
2026-06-21T08:16:00.2645746Z             },
2026-06-21T08:16:00.2645855Z             {
2026-06-21T08:16:00.2646012Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.2646127Z               "line": 507
2026-06-21T08:16:00.2646337Z             }
2026-06-21T08:16:00.2646432Z           ]
2026-06-21T08:16:00.2646541Z         },
2026-06-21T08:16:00.2646742Z         "int": {
2026-06-21T08:16:00.2646866Z           "complete": false,
2026-06-21T08:16:00.2646981Z           "evidence": []
2026-06-21T08:16:00.2647090Z         },
2026-06-21T08:16:00.2647195Z         "unit": {
2026-06-21T08:16:00.2647320Z           "complete": true,
2026-06-21T08:16:00.2647438Z           "evidence": [
2026-06-21T08:16:00.2647534Z             {
2026-06-21T08:16:00.2647687Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.2647800Z               "line": 541
2026-06-21T08:16:00.2647913Z             }
2026-06-21T08:16:00.2648019Z           ]
2026-06-21T08:16:00.2648126Z         }
2026-06-21T08:16:00.2648231Z       }
2026-06-21T08:16:00.2648332Z     },
2026-06-21T08:16:00.2648441Z     {
2026-06-21T08:16:00.2648589Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-21T08:16:00.2648789Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-21T08:16:00.2648919Z       "requiredStages": [
2026-06-21T08:16:00.2649099Z         "impl",
2026-06-21T08:16:00.2649204Z         "unit"
2026-06-21T08:16:00.2649304Z       ],
2026-06-21T08:16:00.2649409Z       "stages": {
2026-06-21T08:16:00.2649509Z         "doc": {
2026-06-21T08:16:00.2649633Z           "complete": false,
2026-06-21T08:16:00.2649733Z           "evidence": []
2026-06-21T08:16:00.2649843Z         },
2026-06-21T08:16:00.2649953Z         "impl": {
2026-06-21T08:16:00.2650063Z           "complete": true,
2026-06-21T08:16:00.2650178Z           "evidence": [
2026-06-21T08:16:00.2650277Z             {
2026-06-21T08:16:00.2650434Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.2650554Z               "line": 552
2026-06-21T08:16:00.2650658Z             },
2026-06-21T08:16:00.2650762Z             {
2026-06-21T08:16:00.2650895Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-21T08:16:00.2651022Z               "line": 28
2026-06-21T08:16:00.2651127Z             }
2026-06-21T08:16:00.2651232Z           ]
2026-06-21T08:16:00.2651346Z         },
2026-06-21T08:16:00.2651451Z         "int": {
2026-06-21T08:16:00.2651575Z           "complete": false,
2026-06-21T08:16:00.2651694Z           "evidence": []
2026-06-21T08:16:00.2651805Z         },
2026-06-21T08:16:00.2651914Z         "unit": {
2026-06-21T08:16:00.2652042Z           "complete": true,
2026-06-21T08:16:00.2652148Z           "evidence": [
2026-06-21T08:16:00.2652247Z             {
2026-06-21T08:16:00.2652400Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-21T08:16:00.2652510Z               "line": 229
2026-06-21T08:16:00.2652615Z             }
2026-06-21T08:16:00.2652715Z           ]
2026-06-21T08:16:00.2652821Z         }
2026-06-21T08:16:00.2652924Z       }
2026-06-21T08:16:00.2653035Z     },
2026-06-21T08:16:00.2653145Z     {
2026-06-21T08:16:00.2653281Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-21T08:16:00.2653443Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-21T08:16:00.2653560Z       "requiredStages": [],
2026-06-21T08:16:00.2653669Z       "stages": {
2026-06-21T08:16:00.2653775Z         "doc": {
2026-06-21T08:16:00.2653884Z           "complete": false,
2026-06-21T08:16:00.2654003Z           "evidence": []
2026-06-21T08:16:00.2654104Z         },
2026-06-21T08:16:00.2654213Z         "impl": {
2026-06-21T08:16:00.2654323Z           "complete": false,
2026-06-21T08:16:00.2654447Z           "evidence": []
2026-06-21T08:16:00.2654546Z         },
2026-06-21T08:16:00.2654653Z         "int": {
2026-06-21T08:16:00.2654771Z           "complete": false,
2026-06-21T08:16:00.2654890Z           "evidence": []
2026-06-21T08:16:00.2654991Z         },
2026-06-21T08:16:00.2655095Z         "unit": {
2026-06-21T08:16:00.2655205Z           "complete": false,
2026-06-21T08:16:00.2655311Z           "evidence": []
2026-06-21T08:16:00.2655429Z         }
2026-06-21T08:16:00.2655534Z       }
2026-06-21T08:16:00.2655621Z     },
2026-06-21T08:16:00.2655834Z     {
2026-06-21T08:16:00.2655969Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-21T08:16:00.2656224Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-21T08:16:00.2656344Z       "requiredStages": [
2026-06-21T08:16:00.2656444Z         "impl",
2026-06-21T08:16:00.2656558Z         "unit"
2026-06-21T08:16:00.2656664Z       ],
2026-06-21T08:16:00.2656777Z       "stages": {
2026-06-21T08:16:00.2656887Z         "doc": {
2026-06-21T08:16:00.2657007Z           "complete": false,
2026-06-21T08:16:00.2657116Z           "evidence": []
2026-06-21T08:16:00.2657231Z         },
2026-06-21T08:16:00.2657345Z         "impl": {
2026-06-21T08:16:00.2657459Z           "complete": true,
2026-06-21T08:16:00.2657575Z           "evidence": [
2026-06-21T08:16:00.2657679Z             {
2026-06-21T08:16:00.2657832Z               "path": "crates/spt-live/src/turn.rs",
2026-06-21T08:16:00.2657941Z               "line": 19
2026-06-21T08:16:00.2658050Z             },
2026-06-21T08:16:00.2658166Z             {
2026-06-21T08:16:00.2658312Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2658441Z               "line": 463
2026-06-21T08:16:00.2658546Z             },
2026-06-21T08:16:00.2658644Z             {
2026-06-21T08:16:00.2658791Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2658902Z               "line": 499
2026-06-21T08:16:00.2659072Z             },
2026-06-21T08:16:00.2659178Z             {
2026-06-21T08:16:00.2659330Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2659440Z               "line": 547
2026-06-21T08:16:00.2659550Z             },
2026-06-21T08:16:00.2659654Z             {
2026-06-21T08:16:00.2659799Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-21T08:16:00.2659917Z               "line": 15
2026-06-21T08:16:00.2660012Z             },
2026-06-21T08:16:00.2662869Z             {
2026-06-21T08:16:00.2663051Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-21T08:16:00.2663175Z               "line": 48
2026-06-21T08:16:00.2663285Z             },
2026-06-21T08:16:00.2663400Z             {
2026-06-21T08:16:00.2663546Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-21T08:16:00.2663657Z               "line": 119
2026-06-21T08:16:00.2663770Z             },
2026-06-21T08:16:00.2663870Z             {
2026-06-21T08:16:00.2664022Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2664139Z               "line": 3948
2026-06-21T08:16:00.2664234Z             }
2026-06-21T08:16:00.2664345Z           ]
2026-06-21T08:16:00.2664444Z         },
2026-06-21T08:16:00.2664544Z         "int": {
2026-06-21T08:16:00.2664664Z           "complete": false,
2026-06-21T08:16:00.2664782Z           "evidence": []
2026-06-21T08:16:00.2664883Z         },
2026-06-21T08:16:00.2664984Z         "unit": {
2026-06-21T08:16:00.2665107Z           "complete": true,
2026-06-21T08:16:00.2665213Z           "evidence": [
2026-06-21T08:16:00.2665313Z             {
2026-06-21T08:16:00.2665503Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2665632Z               "line": 765
2026-06-21T08:16:00.2665750Z             },
2026-06-21T08:16:00.2665857Z             {
2026-06-21T08:16:00.2666008Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-21T08:16:00.2666118Z               "line": 165
2026-06-21T08:16:00.2666224Z             },
2026-06-21T08:16:00.2666322Z             {
2026-06-21T08:16:00.2666467Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-21T08:16:00.2666582Z               "line": 175
2026-06-21T08:16:00.2666684Z             }
2026-06-21T08:16:00.2666794Z           ]
2026-06-21T08:16:00.2666895Z         }
2026-06-21T08:16:00.2666994Z       }
2026-06-21T08:16:00.2667094Z     },
2026-06-21T08:16:00.2667200Z     {
2026-06-21T08:16:00.2667342Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-21T08:16:00.2668277Z       "title": "Elevation guidance on Unix names the binary's ABSOLUTE path under sudo (a user-local install ~/.local/bin · ~/.cargo/bin is not on sudo's secure_path, so bare `sudo spt` dies 'command not found'); gated commands auto-elevate on an interactive TTY, else print the runnable hint (5.10)",
2026-06-21T08:16:00.2668697Z       "requiredStages": [
2026-06-21T08:16:00.2668840Z         "impl",
2026-06-21T08:16:00.2669024Z         "unit"
2026-06-21T08:16:00.2669129Z       ],
2026-06-21T08:16:00.2669242Z       "stages": {
2026-06-21T08:16:00.2669346Z         "doc": {
2026-06-21T08:16:00.2669476Z           "complete": false,
2026-06-21T08:16:00.2669580Z           "evidence": []
2026-06-21T08:16:00.2669685Z         },
2026-06-21T08:16:00.2669791Z         "impl": {
2026-06-21T08:16:00.2669909Z           "complete": true,
2026-06-21T08:16:00.2670019Z           "evidence": [
2026-06-21T08:16:00.2670119Z             {
2026-06-21T08:16:00.2670266Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.2670387Z               "line": 192
2026-06-21T08:16:00.2670496Z             },
2026-06-21T08:16:00.2670624Z             {
2026-06-21T08:16:00.2670767Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.2670882Z               "line": 279
2026-06-21T08:16:00.2670983Z             }
2026-06-21T08:16:00.2671078Z           ]
2026-06-21T08:16:00.2671183Z         },
2026-06-21T08:16:00.2671283Z         "int": {
2026-06-21T08:16:00.2671407Z           "complete": false,
2026-06-21T08:16:00.2671516Z           "evidence": []
2026-06-21T08:16:00.2671622Z         },
2026-06-21T08:16:00.2671722Z         "unit": {
2026-06-21T08:16:00.2671830Z           "complete": true,
2026-06-21T08:16:00.2671939Z           "evidence": [
2026-06-21T08:16:00.2672029Z             {
2026-06-21T08:16:00.2672165Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.2672286Z               "line": 470
2026-06-21T08:16:00.2672391Z             },
2026-06-21T08:16:00.2672499Z             {
2026-06-21T08:16:00.2672629Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.2672743Z               "line": 526
2026-06-21T08:16:00.2672847Z             }
2026-06-21T08:16:00.2672953Z           ]
2026-06-21T08:16:00.2673063Z         }
2026-06-21T08:16:00.2673167Z       }
2026-06-21T08:16:00.2673273Z     },
2026-06-21T08:16:00.2673377Z     {
2026-06-21T08:16:00.2673516Z       "id": "REQ-HAZARD-TEMPLATE-ARGV-FILL",
2026-06-21T08:16:00.2677354Z       "title": "Command-template substitution fills argv ELEMENTS, not a re-tokenized string: spt-core currently `fill_template`s {key} values INTO the command STRING and THEN `tokenize`s the filled string (runtime.rs:94/122), so a multi-word {key} value whitespace-SPLITS into multiple argv tokens unless the adapter hand-quotes the placeholder, and a value containing a `\"` (or `;`) injects/breaks tokenization (shell-injection-adjacent). A filled value MUST become exactly ONE argv element regardless of spaces/quotes in the value. Fix: tokenize the TEMPLATE into argv FIRST, then `fill_template` EACH token, so a `{key}` slot resolves to a single element and the value never participates in tokenization (no whitespace-split, no quote/semicolon injection); preserve the missing-key / empty-command errors and `{{`/`}}` non-interpretation. perri's F-009 (v0.8.1 dogfood, argv-capture-confirmed): a multi-word `{psyche_prompt}` = \"PSYCHE REVIVAL time: epoch-ms:… incoming event: (none)\" arrived as argv[6..12] (7 stray tokens), the harness runner strict-parsed `--prompt` against the 2nd word, exited 2 within ~1s → phantom hosted perch. Applies to EVERY [session.<role>] template (psyche_init, extractor, notif, …); digest survives today only because its fills ({session_id}/{source}) are single-token.",
2026-06-21T08:16:00.2677513Z       "requiredStages": [
2026-06-21T08:16:00.2677621Z         "impl",
2026-06-21T08:16:00.2677721Z         "unit",
2026-06-21T08:16:00.2677832Z         "int"
2026-06-21T08:16:00.2677931Z       ],
2026-06-21T08:16:00.2678037Z       "stages": {
2026-06-21T08:16:00.2678151Z         "doc": {
2026-06-21T08:16:00.2678265Z           "complete": false,
2026-06-21T08:16:00.2678752Z           "evidence": []
2026-06-21T08:16:00.2678861Z         },
2026-06-21T08:16:00.2679020Z         "impl": {
2026-06-21T08:16:00.2679252Z           "complete": true,
2026-06-21T08:16:00.2679359Z           "evidence": [
2026-06-21T08:16:00.2679461Z             {
2026-06-21T08:16:00.2679627Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T08:16:00.2679731Z               "line": 116
2026-06-21T08:16:00.2679835Z             },
2026-06-21T08:16:00.2679935Z             {
2026-06-21T08:16:00.2680088Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.2680202Z               "line": 132
2026-06-21T08:16:00.2680303Z             },
2026-06-21T08:16:00.2680408Z             {
2026-06-21T08:16:00.2680555Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T08:16:00.2680661Z               "line": 434
2026-06-21T08:16:00.2680769Z             },
2026-06-21T08:16:00.2680870Z             {
2026-06-21T08:16:00.2681018Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2681151Z               "line": 139
2026-06-21T08:16:00.2681257Z             },
2026-06-21T08:16:00.2681356Z             {
2026-06-21T08:16:00.2681509Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2681610Z               "line": 326
2026-06-21T08:16:00.2681714Z             },
2026-06-21T08:16:00.2681819Z             {
2026-06-21T08:16:00.2681957Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2682067Z               "line": 555
2026-06-21T08:16:00.2682172Z             }
2026-06-21T08:16:00.2682277Z           ]
2026-06-21T08:16:00.2682381Z         },
2026-06-21T08:16:00.2682485Z         "int": {
2026-06-21T08:16:00.2682603Z           "complete": true,
2026-06-21T08:16:00.2682707Z           "evidence": [
2026-06-21T08:16:00.2682807Z             {
2026-06-21T08:16:00.2682984Z               "path": "crates/spt/tests/livehost_nonresident_e2e.rs",
2026-06-21T08:16:00.2683093Z               "line": 32
2026-06-21T08:16:00.2683199Z             }
2026-06-21T08:16:00.2683308Z           ]
2026-06-21T08:16:00.2683417Z         },
2026-06-21T08:16:00.2683523Z         "unit": {
2026-06-21T08:16:00.2683642Z           "complete": true,
2026-06-21T08:16:00.2683752Z           "evidence": [
2026-06-21T08:16:00.2683852Z             {
2026-06-21T08:16:00.2683999Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2684115Z               "line": 625
2026-06-21T08:16:00.2684219Z             },
2026-06-21T08:16:00.2684328Z             {
2026-06-21T08:16:00.2684477Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2684581Z               "line": 646
2026-06-21T08:16:00.2684686Z             },
2026-06-21T08:16:00.2684792Z             {
2026-06-21T08:16:00.2684933Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2685047Z               "line": 662
2026-06-21T08:16:00.2685156Z             },
2026-06-21T08:16:00.2685269Z             {
2026-06-21T08:16:00.2685408Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2685532Z               "line": 680
2026-06-21T08:16:00.2685636Z             },
2026-06-21T08:16:00.2685742Z             {
2026-06-21T08:16:00.2685898Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2686008Z               "line": 704
2026-06-21T08:16:00.2686118Z             }
2026-06-21T08:16:00.2686213Z           ]
2026-06-21T08:16:00.2686318Z         }
2026-06-21T08:16:00.2686423Z       }
2026-06-21T08:16:00.2686519Z     },
2026-06-21T08:16:00.2686628Z     {
2026-06-21T08:16:00.2686757Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-21T08:16:00.2686943Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-21T08:16:00.2687058Z       "requiredStages": [
2026-06-21T08:16:00.2687162Z         "impl",
2026-06-21T08:16:00.2687267Z         "unit"
2026-06-21T08:16:00.2687368Z       ],
2026-06-21T08:16:00.2687481Z       "stages": {
2026-06-21T08:16:00.2687697Z         "doc": {
2026-06-21T08:16:00.2687824Z           "complete": false,
2026-06-21T08:16:00.2687933Z           "evidence": []
2026-06-21T08:16:00.2688110Z         },
2026-06-21T08:16:00.2688215Z         "impl": {
2026-06-21T08:16:00.2688335Z           "complete": true,
2026-06-21T08:16:00.2688444Z           "evidence": [
2026-06-21T08:16:00.2688543Z             {
2026-06-21T08:16:00.2688687Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-21T08:16:00.2688787Z               "line": 35
2026-06-21T08:16:00.2688892Z             }
2026-06-21T08:16:00.2689078Z           ]
2026-06-21T08:16:00.2689187Z         },
2026-06-21T08:16:00.2689298Z         "int": {
2026-06-21T08:16:00.2689403Z           "complete": false,
2026-06-21T08:16:00.2689507Z           "evidence": []
2026-06-21T08:16:00.2689608Z         },
2026-06-21T08:16:00.2689716Z         "unit": {
2026-06-21T08:16:00.2689836Z           "complete": true,
2026-06-21T08:16:00.2689942Z           "evidence": [
2026-06-21T08:16:00.2690050Z             {
2026-06-21T08:16:00.2690183Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-21T08:16:00.2690297Z               "line": 220
2026-06-21T08:16:00.2690395Z             }
2026-06-21T08:16:00.2690500Z           ]
2026-06-21T08:16:00.2690601Z         }
2026-06-21T08:16:00.2690705Z       }
2026-06-21T08:16:00.2690810Z     },
2026-06-21T08:16:00.2690906Z     {
2026-06-21T08:16:00.2691053Z       "id": "REQ-HAZARD-UNHOST-PSYCHE-REAP",
2026-06-21T08:16:00.2694159Z       "title": "On un-host, the detached `{id}-psyche` HARNESS PROCESS is reaped — not just its in-brain pulse-driver thread. Today stop_host (livehost.rs:203) trips the HostedLife stop flag + JOINS the driver thread, but the Psyche is a detached harness process (spawn_psyche → ManifestRuntime detached spawn, runtime.rs:341-356; its pid is untracked in HostedLife though stamped on the `{id}-psyche` perch, where residency-confirm already reads it). So endpoint-stop / mid-life agent-death / a B2/B5 offline-then-unhost leaves the psyche process ORPHANED, alive until the next daemon-stop (where Breap's job/group reaps the whole brain subtree). The Psyche STAYS a harness process by design (CONTEXT.md 97/203/251 — headless harness session, its own perch) — the fix does NOT move it in-brain; it SCOPED-kills the `{id}-psyche` pid on un-host (never machine-wide — shared box). Track the pid in HostedLife at host_one (cleanest) or read the `{id}-psyche` perch pid at stop_host. Composes with H3 (endpoint stop → offline → reconcile un-host → reap) and B2/B5 (the offline arms that trigger un-host). (v0.12.0)",
2026-06-21T08:16:00.2694326Z       "requiredStages": [
2026-06-21T08:16:00.2694436Z         "impl",
2026-06-21T08:16:00.2694545Z         "unit",
2026-06-21T08:16:00.2694650Z         "int"
2026-06-21T08:16:00.2694755Z       ],
2026-06-21T08:16:00.2694860Z       "stages": {
2026-06-21T08:16:00.2694970Z         "doc": {
2026-06-21T08:16:00.2695089Z           "complete": false,
2026-06-21T08:16:00.2695213Z           "evidence": []
2026-06-21T08:16:00.2695334Z         },
2026-06-21T08:16:00.2695446Z         "impl": {
2026-06-21T08:16:00.2695569Z           "complete": true,
2026-06-21T08:16:00.2695702Z           "evidence": [
2026-06-21T08:16:00.2695810Z             {
2026-06-21T08:16:00.2695968Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.2696087Z               "line": 202
2026-06-21T08:16:00.2696191Z             },
2026-06-21T08:16:00.2696302Z             {
2026-06-21T08:16:00.2696449Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-21T08:16:00.2696559Z               "line": 107
2026-06-21T08:16:00.2696669Z             },
2026-06-21T08:16:00.2696773Z             {
2026-06-21T08:16:00.2696918Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-21T08:16:00.2697021Z               "line": 138
2026-06-21T08:16:00.2697126Z             },
2026-06-21T08:16:00.2697237Z             {
2026-06-21T08:16:00.2697384Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2697604Z               "line": 209
2026-06-21T08:16:00.2697712Z             },
2026-06-21T08:16:00.2697813Z             {
2026-06-21T08:16:00.2698051Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2698172Z               "line": 246
2026-06-21T08:16:00.2698271Z             },
2026-06-21T08:16:00.2698379Z             {
2026-06-21T08:16:00.2698527Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2698638Z               "line": 379
2026-06-21T08:16:00.2698746Z             }
2026-06-21T08:16:00.2698842Z           ]
2026-06-21T08:16:00.2699013Z         },
2026-06-21T08:16:00.2699118Z         "int": {
2026-06-21T08:16:00.2699233Z           "complete": true,
2026-06-21T08:16:00.2699338Z           "evidence": [
2026-06-21T08:16:00.2699438Z             {
2026-06-21T08:16:00.2699609Z               "path": "crates/spt/tests/unhost_psyche_reap_e2e.rs",
2026-06-21T08:16:00.2699719Z               "line": 17
2026-06-21T08:16:00.2699825Z             }
2026-06-21T08:16:00.2699943Z           ]
2026-06-21T08:16:00.2700048Z         },
2026-06-21T08:16:00.2700149Z         "unit": {
2026-06-21T08:16:00.2700281Z           "complete": true,
2026-06-21T08:16:00.2700391Z           "evidence": [
2026-06-21T08:16:00.2700497Z             {
2026-06-21T08:16:00.2700648Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2700753Z               "line": 982
2026-06-21T08:16:00.2700857Z             }
2026-06-21T08:16:00.2700960Z           ]
2026-06-21T08:16:00.2701065Z         }
2026-06-21T08:16:00.2701171Z       }
2026-06-21T08:16:00.2701270Z     },
2026-06-21T08:16:00.2701380Z     {
2026-06-21T08:16:00.2701519Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-21T08:16:00.2701809Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-21T08:16:00.2701932Z       "requiredStages": [
2026-06-21T08:16:00.2702039Z         "impl",
2026-06-21T08:16:00.2702143Z         "unit"
2026-06-21T08:16:00.2702252Z       ],
2026-06-21T08:16:00.2702348Z       "stages": {
2026-06-21T08:16:00.2702462Z         "doc": {
2026-06-21T08:16:00.2702586Z           "complete": false,
2026-06-21T08:16:00.2702702Z           "evidence": []
2026-06-21T08:16:00.2702796Z         },
2026-06-21T08:16:00.2702915Z         "impl": {
2026-06-21T08:16:00.2703022Z           "complete": true,
2026-06-21T08:16:00.2703139Z           "evidence": [
2026-06-21T08:16:00.2703249Z             {
2026-06-21T08:16:00.2703398Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T08:16:00.2703506Z               "line": 405
2026-06-21T08:16:00.2703611Z             },
2026-06-21T08:16:00.2703719Z             {
2026-06-21T08:16:00.2703865Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.2703975Z               "line": 409
2026-06-21T08:16:00.2704085Z             },
2026-06-21T08:16:00.2704185Z             {
2026-06-21T08:16:00.2704338Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T08:16:00.2704451Z               "line": 156
2026-06-21T08:16:00.2704552Z             }
2026-06-21T08:16:00.2704657Z           ]
2026-06-21T08:16:00.2704771Z         },
2026-06-21T08:16:00.2704877Z         "int": {
2026-06-21T08:16:00.2704996Z           "complete": false,
2026-06-21T08:16:00.2705105Z           "evidence": []
2026-06-21T08:16:00.2705206Z         },
2026-06-21T08:16:00.2705315Z         "unit": {
2026-06-21T08:16:00.2705429Z           "complete": true,
2026-06-21T08:16:00.2705540Z           "evidence": [
2026-06-21T08:16:00.2705640Z             {
2026-06-21T08:16:00.2705783Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.2705894Z               "line": 865
2026-06-21T08:16:00.2705987Z             },
2026-06-21T08:16:00.2706091Z             {
2026-06-21T08:16:00.2706239Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.2706346Z               "line": 879
2026-06-21T08:16:00.2706451Z             },
2026-06-21T08:16:00.2706561Z             {
2026-06-21T08:16:00.2706828Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.2706933Z               "line": 898
2026-06-21T08:16:00.2707128Z             },
2026-06-21T08:16:00.2707234Z             {
2026-06-21T08:16:00.2707376Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.2707478Z               "line": 915
2026-06-21T08:16:00.2707581Z             },
2026-06-21T08:16:00.2707691Z             {
2026-06-21T08:16:00.2707844Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-21T08:16:00.2707958Z               "line": 441
2026-06-21T08:16:00.2708063Z             }
2026-06-21T08:16:00.2708169Z           ]
2026-06-21T08:16:00.2708272Z         }
2026-06-21T08:16:00.2708378Z       }
2026-06-21T08:16:00.2708474Z     },
2026-06-21T08:16:00.2708563Z     {
2026-06-21T08:16:00.2708756Z       "id": "REQ-HAZARD-VIEWER-CLOSE-DETACH",
2026-06-21T08:16:00.2718333Z       "title": "A VIEW is independent from the endpoint: closing the tab/window where `spt endpoint run` was invoked must detach ONLY the `spt rc` attach pump — the daemon-hosted harness keeps running and stays re-attachable via `spt rc <id>`. ROOT (Windows, v0.12.0 real-harness defect): the daemon never breaks away from the launching terminal's Job Object. Windows Terminal / VS Code place the launched shell AND every descendant into a Job Object with JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE; closing the tab drops the terminal's last job handle → the OS terminates every process still in that job. A child escapes only with CREATE_BREAKAWAY_FROM_JOB — used NOWHERE in the tree. Both daemon spawn paths (daemon.rs:707 detached_no_inherit = DETACHED_PROCESS|CREATE_NEW_PROCESS_GROUP|CREATE_NO_WINDOW; deelevate.rs:519 elevated = CREATE_NEW_CONSOLE|...) drop the CONSOLE but NOT job membership, so the daemon's freshly broker-spawned ConPTY harness subtree is reaped on tab-close. The ConPTY/pseudoconsole isolation itself is CORRECT (portable-pty builds the pseudoconsole in the daemon; no console signal / handle leak) — the leaking lifetime binding is the Job Object, not the console. FIX: add CREATE_BREAKAWAY_FROM_JOB to both daemon spawn paths AND pin each broker-spawned harness into a DAEMON-OWNED Job Object (mirror reap.rs/Breap) as backstop (survives even where a terminal sets SILENT_BREAKAWAY_OK=false). Unix: the daemon's own session detachment (new session, no controlling terminal) already keeps a closing terminal's SIGHUP off its children — verify, add a guard test, no code expected. FIX UPDATE (v0.12.1 L1.5, doyle re-scope operator-approved 2026-06-18): job-neutral daemon launch is now PRIMARY, breakaway DEMOTED to a fallback rung. ROOT reframed — the daemon INHERITS the terminal's Job because spawn_detached runs FROM the terminal-child CLI (DETACHED_PROCESS detaches the console, not the job); breakaway tried to claw back out but a job CAN deny it (the L1 finding). FIX: launch the cold-started daemon via a job-NEUTRAL creator so it is WmiPrvSE/Task-Scheduler-owned, OUTSIDE any terminal job from birth (why Task-Scheduler-autostarted daemons never had this bug). Launcher ladder (first-success-wins, daemon.rs spawn_detached → BOTH cold-start AND `spt daemon start`): (1) WMI Win32_Process.Create via ABSOLUTE powershell -EncodedCommand (KH 5.12 abs path; base64-UTF16LE dodges all quoting; success requires BOTH ReturnValue==0 AND a parsed ProcessId, else fall-through — never a silent launched), forwarding SPT_* env via a `cmd /c set … & start /b` wrapper because a WMI/scheduler child does NOT inherit transient shell env (verified — SPT_HOME would be lost, wrong universe); (2) schtasks one-shot (same env wrapper; best-effort fallback); (3) CREATE_BREAKAWAY_FROM_JOB (the L1 code, reordered below); (4) in-job last resort (logs DETACH_IN_JOB + tab-close caveat). detached_no_inherit (breakaway-then-in-job) is UNCHANGED for its other caller shellhost::launch_shell (a daemon-spawned shell is already job-neutral once the daemon is). The elevated deelevate path keeps its L1 breakaway for now (elevated-case WMI-reparent = FOLLOW-UP). (v0.12.1)",
2026-06-21T08:16:00.2718715Z       "requiredStages": [
2026-06-21T08:16:00.2718823Z         "doc",
2026-06-21T08:16:00.2719104Z         "impl",
2026-06-21T08:16:00.2719205Z         "unit",
2026-06-21T08:16:00.2719311Z         "int"
2026-06-21T08:16:00.2719410Z       ],
2026-06-21T08:16:00.2719532Z       "stages": {
2026-06-21T08:16:00.2719633Z         "doc": {
2026-06-21T08:16:00.2719758Z           "complete": true,
2026-06-21T08:16:00.2719875Z           "evidence": [
2026-06-21T08:16:00.2719977Z             {
2026-06-21T08:16:00.2720101Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.2720209Z               "line": 420
2026-06-21T08:16:00.2720311Z             },
2026-06-21T08:16:00.2720420Z             {
2026-06-21T08:16:00.2720558Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.2720673Z               "line": 402
2026-06-21T08:16:00.2720768Z             }
2026-06-21T08:16:00.2720878Z           ]
2026-06-21T08:16:00.2720983Z         },
2026-06-21T08:16:00.2721092Z         "impl": {
2026-06-21T08:16:00.2721217Z           "complete": true,
2026-06-21T08:16:00.2721336Z           "evidence": [
2026-06-21T08:16:00.2721440Z             {
2026-06-21T08:16:00.2721589Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2721707Z               "line": 797
2026-06-21T08:16:00.2721811Z             },
2026-06-21T08:16:00.2721906Z             {
2026-06-21T08:16:00.2722052Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2722166Z               "line": 822
2026-06-21T08:16:00.2722277Z             },
2026-06-21T08:16:00.2722376Z             {
2026-06-21T08:16:00.2722529Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2722639Z               "line": 839
2026-06-21T08:16:00.2722743Z             },
2026-06-21T08:16:00.2722844Z             {
2026-06-21T08:16:00.2722991Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2723106Z               "line": 854
2026-06-21T08:16:00.2723211Z             },
2026-06-21T08:16:00.2723320Z             {
2026-06-21T08:16:00.2723454Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2723583Z               "line": 874
2026-06-21T08:16:00.2723678Z             },
2026-06-21T08:16:00.2723789Z             {
2026-06-21T08:16:00.2723935Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2724045Z               "line": 964
2026-06-21T08:16:00.2724156Z             },
2026-06-21T08:16:00.2724259Z             {
2026-06-21T08:16:00.2724408Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2724527Z               "line": 1016
2026-06-21T08:16:00.2724630Z             },
2026-06-21T08:16:00.2724731Z             {
2026-06-21T08:16:00.2724872Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2724985Z               "line": 1075
2026-06-21T08:16:00.2725081Z             },
2026-06-21T08:16:00.2725182Z             {
2026-06-21T08:16:00.2725338Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T08:16:00.2725449Z               "line": 527
2026-06-21T08:16:00.2725572Z             }
2026-06-21T08:16:00.2725677Z           ]
2026-06-21T08:16:00.2725788Z         },
2026-06-21T08:16:00.2725892Z         "int": {
2026-06-21T08:16:00.2726016Z           "complete": true,
2026-06-21T08:16:00.2726135Z           "evidence": [
2026-06-21T08:16:00.2726249Z             {
2026-06-21T08:16:00.2726427Z               "path": "crates/spt/tests/job_escape_e2e.rs",
2026-06-21T08:16:00.2726536Z               "line": 35
2026-06-21T08:16:00.2726646Z             },
2026-06-21T08:16:00.2726742Z             {
2026-06-21T08:16:00.2726888Z               "path": "crates/spt/tests/job_escape_e2e.rs",
2026-06-21T08:16:00.2726994Z               "line": 569
2026-06-21T08:16:00.2727098Z             },
2026-06-21T08:16:00.2727207Z             {
2026-06-21T08:16:00.2727345Z               "path": "crates/spt/tests/job_escape_e2e.rs",
2026-06-21T08:16:00.2727462Z               "line": 590
2026-06-21T08:16:00.2727672Z             }
2026-06-21T08:16:00.2727777Z           ]
2026-06-21T08:16:00.2727886Z         },
2026-06-21T08:16:00.2728068Z         "unit": {
2026-06-21T08:16:00.2728191Z           "complete": true,
2026-06-21T08:16:00.2728302Z           "evidence": [
2026-06-21T08:16:00.2728402Z             {
2026-06-21T08:16:00.2728539Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2728664Z               "line": 1202
2026-06-21T08:16:00.2728773Z             },
2026-06-21T08:16:00.2728873Z             {
2026-06-21T08:16:00.2729097Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2729203Z               "line": 1246
2026-06-21T08:16:00.2729312Z             },
2026-06-21T08:16:00.2729412Z             {
2026-06-21T08:16:00.2729556Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2729664Z               "line": 1260
2026-06-21T08:16:00.2729770Z             },
2026-06-21T08:16:00.2729866Z             {
2026-06-21T08:16:00.2730012Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2730111Z               "line": 1278
2026-06-21T08:16:00.2730213Z             },
2026-06-21T08:16:00.2730322Z             {
2026-06-21T08:16:00.2730469Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2730580Z               "line": 1302
2026-06-21T08:16:00.2730689Z             },
2026-06-21T08:16:00.2730794Z             {
2026-06-21T08:16:00.2730933Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2731042Z               "line": 1529
2026-06-21T08:16:00.2731152Z             }
2026-06-21T08:16:00.2731257Z           ]
2026-06-21T08:16:00.2731361Z         }
2026-06-21T08:16:00.2731467Z       }
2026-06-21T08:16:00.2731567Z     },
2026-06-21T08:16:00.2731671Z     {
2026-06-21T08:16:00.2731811Z       "id": "REQ-HAZARD-VIEWER-ISOLATION",
2026-06-21T08:16:00.2733990Z       "title": "A slow / dead / hostile VIEWER must NEVER stall the controller, the PTY child, or the session drain thread. The broker drain fans output to the controller on the authoritative blocking bounded path (advances delivered_through) but to each viewer via a bounded per-viewer channel with a dedicated writer thread; the drain `try_send`s under the log lock and a viewer whose bounded queue OVERFLOWS (can't keep up) is EVICTED (queue dropped, writer thread ends, removed from the viewers map) — the drain thread NEVER touches a viewer socket, so no viewer write can backpressure or block it. A soft viewer cap bounds the thread count. Viewer eviction never perturbs the controller stream, the delivered_through cursor, or the child.",
2026-06-21T08:16:00.2734133Z       "requiredStages": [
2026-06-21T08:16:00.2734238Z         "unit",
2026-06-21T08:16:00.2734349Z         "int"
2026-06-21T08:16:00.2734453Z       ],
2026-06-21T08:16:00.2734558Z       "stages": {
2026-06-21T08:16:00.2734664Z         "doc": {
2026-06-21T08:16:00.2734786Z           "complete": true,
2026-06-21T08:16:00.2734901Z           "evidence": [
2026-06-21T08:16:00.2735016Z             {
2026-06-21T08:16:00.2735158Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.2735281Z               "line": 381
2026-06-21T08:16:00.2735386Z             }
2026-06-21T08:16:00.2735493Z           ]
2026-06-21T08:16:00.2735588Z         },
2026-06-21T08:16:00.2735704Z         "impl": {
2026-06-21T08:16:00.2735813Z           "complete": true,
2026-06-21T08:16:00.2735937Z           "evidence": [
2026-06-21T08:16:00.2736042Z             {
2026-06-21T08:16:00.2736189Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.2736310Z               "line": 135
2026-06-21T08:16:00.2736405Z             }
2026-06-21T08:16:00.2736508Z           ]
2026-06-21T08:16:00.2736615Z         },
2026-06-21T08:16:00.2736728Z         "int": {
2026-06-21T08:16:00.2736848Z           "complete": true,
2026-06-21T08:16:00.2736958Z           "evidence": [
2026-06-21T08:16:00.2737066Z             {
2026-06-21T08:16:00.2737221Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T08:16:00.2737443Z               "line": 1042
2026-06-21T08:16:00.2737545Z             }
2026-06-21T08:16:00.2737757Z           ]
2026-06-21T08:16:00.2737858Z         },
2026-06-21T08:16:00.2737962Z         "unit": {
2026-06-21T08:16:00.2738079Z           "complete": true,
2026-06-21T08:16:00.2738189Z           "evidence": [
2026-06-21T08:16:00.2738295Z             {
2026-06-21T08:16:00.2738441Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.2738557Z               "line": 2370
2026-06-21T08:16:00.2738657Z             }
2026-06-21T08:16:00.2738756Z           ]
2026-06-21T08:16:00.2738862Z         }
2026-06-21T08:16:00.2739023Z       }
2026-06-21T08:16:00.2739124Z     },
2026-06-21T08:16:00.2739229Z     {
2026-06-21T08:16:00.2739371Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-21T08:16:00.2740202Z       "title": "WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)",
2026-06-21T08:16:00.2740330Z       "requiredStages": [
2026-06-21T08:16:00.2740446Z         "doc",
2026-06-21T08:16:00.2740558Z         "impl",
2026-06-21T08:16:00.2740658Z         "unit"
2026-06-21T08:16:00.2740763Z       ],
2026-06-21T08:16:00.2740869Z       "stages": {
2026-06-21T08:16:00.2740977Z         "doc": {
2026-06-21T08:16:00.2741082Z           "complete": true,
2026-06-21T08:16:00.2741207Z           "evidence": [
2026-06-21T08:16:00.2741306Z             {
2026-06-21T08:16:00.2741441Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.2741559Z               "line": 366
2026-06-21T08:16:00.2741654Z             }
2026-06-21T08:16:00.2741751Z           ]
2026-06-21T08:16:00.2741855Z         },
2026-06-21T08:16:00.2741969Z         "impl": {
2026-06-21T08:16:00.2742075Z           "complete": true,
2026-06-21T08:16:00.2742193Z           "evidence": [
2026-06-21T08:16:00.2742318Z             {
2026-06-21T08:16:00.2742465Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-21T08:16:00.2742579Z               "line": 87
2026-06-21T08:16:00.2742686Z             },
2026-06-21T08:16:00.2742793Z             {
2026-06-21T08:16:00.2742926Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-21T08:16:00.2743050Z               "line": 105
2026-06-21T08:16:00.2743163Z             },
2026-06-21T08:16:00.2743262Z             {
2026-06-21T08:16:00.2743411Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T08:16:00.2743520Z               "line": 55
2026-06-21T08:16:00.2743625Z             },
2026-06-21T08:16:00.2743721Z             {
2026-06-21T08:16:00.2743868Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T08:16:00.2743988Z               "line": 31
2026-06-21T08:16:00.2744093Z             },
2026-06-21T08:16:00.2744201Z             {
2026-06-21T08:16:00.2744350Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T08:16:00.2744464Z               "line": 446
2026-06-21T08:16:00.2744574Z             },
2026-06-21T08:16:00.2744688Z             {
2026-06-21T08:16:00.2744845Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T08:16:00.2744938Z               "line": 95
2026-06-21T08:16:00.2745046Z             },
2026-06-21T08:16:00.2745151Z             {
2026-06-21T08:16:00.2745300Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T08:16:00.2745418Z               "line": 29
2026-06-21T08:16:00.2745514Z             },
2026-06-21T08:16:00.2745619Z             {
2026-06-21T08:16:00.2745765Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T08:16:00.2745880Z               "line": 104
2026-06-21T08:16:00.2745969Z             },
2026-06-21T08:16:00.2746082Z             {
2026-06-21T08:16:00.2746245Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.2746359Z               "line": 208
2026-06-21T08:16:00.2746478Z             },
2026-06-21T08:16:00.2746759Z             {
2026-06-21T08:16:00.2746912Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-21T08:16:00.2747093Z               "line": 28
2026-06-21T08:16:00.2747203Z             },
2026-06-21T08:16:00.2747313Z             {
2026-06-21T08:16:00.2747446Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-21T08:16:00.2747570Z               "line": 74
2026-06-21T08:16:00.2747670Z             },
2026-06-21T08:16:00.2747781Z             {
2026-06-21T08:16:00.2747932Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-21T08:16:00.2748052Z               "line": 32
2026-06-21T08:16:00.2748153Z             },
2026-06-21T08:16:00.2748252Z             {
2026-06-21T08:16:00.2748403Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T08:16:00.2748503Z               "line": 40
2026-06-21T08:16:00.2748611Z             },
2026-06-21T08:16:00.2748710Z             {
2026-06-21T08:16:00.2748845Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T08:16:00.2749049Z               "line": 184
2026-06-21T08:16:00.2749150Z             },
2026-06-21T08:16:00.2749268Z             {
2026-06-21T08:16:00.2749408Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-21T08:16:00.2749512Z               "line": 61
2026-06-21T08:16:00.2749607Z             },
2026-06-21T08:16:00.2749718Z             {
2026-06-21T08:16:00.2749860Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-21T08:16:00.2749965Z               "line": 131
2026-06-21T08:16:00.2750066Z             },
2026-06-21T08:16:00.2750170Z             {
2026-06-21T08:16:00.2750318Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-21T08:16:00.2750424Z               "line": 223
2026-06-21T08:16:00.2750528Z             },
2026-06-21T08:16:00.2750623Z             {
2026-06-21T08:16:00.2750767Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-21T08:16:00.2750880Z               "line": 37
2026-06-21T08:16:00.2750977Z             },
2026-06-21T08:16:00.2751091Z             {
2026-06-21T08:16:00.2751241Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-21T08:16:00.2751357Z               "line": 38
2026-06-21T08:16:00.2751461Z             },
2026-06-21T08:16:00.2751570Z             {
2026-06-21T08:16:00.2751724Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-21T08:16:00.2751833Z               "line": 36
2026-06-21T08:16:00.2751939Z             },
2026-06-21T08:16:00.2752043Z             {
2026-06-21T08:16:00.2752190Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-21T08:16:00.2752301Z               "line": 40
2026-06-21T08:16:00.2752391Z             }
2026-06-21T08:16:00.2752495Z           ]
2026-06-21T08:16:00.2752597Z         },
2026-06-21T08:16:00.2752705Z         "int": {
2026-06-21T08:16:00.2752830Z           "complete": false,
2026-06-21T08:16:00.2752931Z           "evidence": []
2026-06-21T08:16:00.2753039Z         },
2026-06-21T08:16:00.2753144Z         "unit": {
2026-06-21T08:16:00.2753265Z           "complete": true,
2026-06-21T08:16:00.2753382Z           "evidence": [
2026-06-21T08:16:00.2753491Z             {
2026-06-21T08:16:00.2753643Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T08:16:00.2753756Z               "line": 212
2026-06-21T08:16:00.2753866Z             },
2026-06-21T08:16:00.2753957Z             {
2026-06-21T08:16:00.2754113Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-21T08:16:00.2754224Z               "line": 136
2026-06-21T08:16:00.2754329Z             },
2026-06-21T08:16:00.2754437Z             {
2026-06-21T08:16:00.2754586Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-21T08:16:00.2754700Z               "line": 685
2026-06-21T08:16:00.2754810Z             },
2026-06-21T08:16:00.2754925Z             {
2026-06-21T08:16:00.2755072Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-21T08:16:00.2755183Z               "line": 224
2026-06-21T08:16:00.2755287Z             },
2026-06-21T08:16:00.2755493Z             {
2026-06-21T08:16:00.2755644Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-21T08:16:00.2755850Z               "line": 206
2026-06-21T08:16:00.2755954Z             },
2026-06-21T08:16:00.2756060Z             {
2026-06-21T08:16:00.2756207Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-21T08:16:00.2756316Z               "line": 112
2026-06-21T08:16:00.2756420Z             },
2026-06-21T08:16:00.2756529Z             {
2026-06-21T08:16:00.2756665Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-21T08:16:00.2756786Z               "line": 157
2026-06-21T08:16:00.2756891Z             },
2026-06-21T08:16:00.2756999Z             {
2026-06-21T08:16:00.2757149Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-21T08:16:00.2757257Z               "line": 215
2026-06-21T08:16:00.2757362Z             },
2026-06-21T08:16:00.2757468Z             {
2026-06-21T08:16:00.2757615Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-21T08:16:00.2757716Z               "line": 141
2026-06-21T08:16:00.2757830Z             },
2026-06-21T08:16:00.2757939Z             {
2026-06-21T08:16:00.2758069Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-21T08:16:00.2758187Z               "line": 162
2026-06-21T08:16:00.2758287Z             }
2026-06-21T08:16:00.2758388Z           ]
2026-06-21T08:16:00.2758492Z         }
2026-06-21T08:16:00.2758583Z       }
2026-06-21T08:16:00.2758685Z     },
2026-06-21T08:16:00.2758784Z     {
2026-06-21T08:16:00.2758935Z       "id": "REQ-HAZARD-WIN-PTY-PROGRAM-RESOLVE",
2026-06-21T08:16:00.2760869Z       "title": "Native-PTY spawn must resolve a bare program name with PATHEXT precedence and run a non-PE target through its interpreter: portable-pty's own `which` takes the FIRST PATH match — an extensionless shebang shim (e.g. a node CLI `ccs` shipped beside `ccs.cmd`) — and CreateProcessW then rejects the non-PE file with os error 193 ('not a valid Win32 application'); spt-term resolves the program itself (PATHEXT order prefers .EXE over .CMD; .cmd/.bat → cmd.exe /d /c, .ps1 → powershell -NoProfile -File) so a bare harness/shell [session.self] command actually launches on Windows. Unix is a passthrough (execve honours the shebang).",
2026-06-21T08:16:00.2761026Z       "requiredStages": [
2026-06-21T08:16:00.2761130Z         "doc",
2026-06-21T08:16:00.2761237Z         "impl",
2026-06-21T08:16:00.2761345Z         "unit",
2026-06-21T08:16:00.2761450Z         "int"
2026-06-21T08:16:00.2761552Z       ],
2026-06-21T08:16:00.2761656Z       "stages": {
2026-06-21T08:16:00.2761745Z         "doc": {
2026-06-21T08:16:00.2761869Z           "complete": true,
2026-06-21T08:16:00.2761975Z           "evidence": [
2026-06-21T08:16:00.2764979Z             {
2026-06-21T08:16:00.2765146Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.2765269Z               "line": 250
2026-06-21T08:16:00.2765375Z             }
2026-06-21T08:16:00.2765494Z           ]
2026-06-21T08:16:00.2765637Z         },
2026-06-21T08:16:00.2765767Z         "impl": {
2026-06-21T08:16:00.2765889Z           "complete": true,
2026-06-21T08:16:00.2766010Z           "evidence": [
2026-06-21T08:16:00.2766119Z             {
2026-06-21T08:16:00.2766266Z               "path": "crates/spt-term/src/pty.rs",
2026-06-21T08:16:00.2766373Z               "line": 135
2026-06-21T08:16:00.2766476Z             },
2026-06-21T08:16:00.2766572Z             {
2026-06-21T08:16:00.2766712Z               "path": "crates/spt-term/src/pty.rs",
2026-06-21T08:16:00.2766819Z               "line": 157
2026-06-21T08:16:00.2766923Z             }
2026-06-21T08:16:00.2767033Z           ]
2026-06-21T08:16:00.2767131Z         },
2026-06-21T08:16:00.2767230Z         "int": {
2026-06-21T08:16:00.2767346Z           "complete": true,
2026-06-21T08:16:00.2767451Z           "evidence": [
2026-06-21T08:16:00.2767555Z             {
2026-06-21T08:16:00.2767704Z               "path": "crates/spt-term/tests/winspawn.rs",
2026-06-21T08:16:00.2767817Z               "line": 15
2026-06-21T08:16:00.2768080Z             }
2026-06-21T08:16:00.2768185Z           ]
2026-06-21T08:16:00.2768291Z         },
2026-06-21T08:16:00.2768485Z         "unit": {
2026-06-21T08:16:00.2768601Z           "complete": true,
2026-06-21T08:16:00.2768752Z           "evidence": [
2026-06-21T08:16:00.2768896Z             {
2026-06-21T08:16:00.2769129Z               "path": "crates/spt-term/src/winprog.rs",
2026-06-21T08:16:00.2769240Z               "line": 233
2026-06-21T08:16:00.2769339Z             }
2026-06-21T08:16:00.2769437Z           ]
2026-06-21T08:16:00.2769542Z         }
2026-06-21T08:16:00.2769647Z       }
2026-06-21T08:16:00.2769759Z     },
2026-06-21T08:16:00.2769860Z     {
2026-06-21T08:16:00.2770008Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-21T08:16:00.2770194Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-21T08:16:00.2770318Z       "requiredStages": [
2026-06-21T08:16:00.2770422Z         "impl",
2026-06-21T08:16:00.2770524Z         "unit"
2026-06-21T08:16:00.2770637Z       ],
2026-06-21T08:16:00.2770746Z       "stages": {
2026-06-21T08:16:00.2770857Z         "doc": {
2026-06-21T08:16:00.2770961Z           "complete": false,
2026-06-21T08:16:00.2771075Z           "evidence": []
2026-06-21T08:16:00.2771177Z         },
2026-06-21T08:16:00.2771286Z         "impl": {
2026-06-21T08:16:00.2771405Z           "complete": true,
2026-06-21T08:16:00.2771510Z           "evidence": [
2026-06-21T08:16:00.2771614Z             {
2026-06-21T08:16:00.2771758Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T08:16:00.2771863Z               "line": 95
2026-06-21T08:16:00.2771967Z             },
2026-06-21T08:16:00.2772073Z             {
2026-06-21T08:16:00.2772220Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.2772324Z               "line": 117
2026-06-21T08:16:00.2772424Z             }
2026-06-21T08:16:00.2772525Z           ]
2026-06-21T08:16:00.2772633Z         },
2026-06-21T08:16:00.2772739Z         "int": {
2026-06-21T08:16:00.2772863Z           "complete": false,
2026-06-21T08:16:00.2772981Z           "evidence": []
2026-06-21T08:16:00.2773078Z         },
2026-06-21T08:16:00.2773187Z         "unit": {
2026-06-21T08:16:00.2773296Z           "complete": true,
2026-06-21T08:16:00.2773412Z           "evidence": [
2026-06-21T08:16:00.2773516Z             {
2026-06-21T08:16:00.2773654Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T08:16:00.2773770Z               "line": 250
2026-06-21T08:16:00.2773874Z             },
2026-06-21T08:16:00.2773979Z             {
2026-06-21T08:16:00.2774122Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T08:16:00.2774227Z               "line": 412
2026-06-21T08:16:00.2774327Z             },
2026-06-21T08:16:00.2774432Z             {
2026-06-21T08:16:00.2774574Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.2774683Z               "line": 611
2026-06-21T08:16:00.2774792Z             },
2026-06-21T08:16:00.2774891Z             {
2026-06-21T08:16:00.2775034Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.2775139Z               "line": 669
2026-06-21T08:16:00.2775243Z             }
2026-06-21T08:16:00.2775339Z           ]
2026-06-21T08:16:00.2775440Z         }
2026-06-21T08:16:00.2775544Z       }
2026-06-21T08:16:00.2775659Z     },
2026-06-21T08:16:00.2775778Z     {
2026-06-21T08:16:00.2775901Z       "id": "REQ-HAZARD-WMI-DAEMON-WINDOW",
2026-06-21T08:16:00.2778382Z       "title": "`spt daemon start` launches the daemon with NO visible console window. REGRESSION (v0.12.1 L1.5): the WMI job-neutral launch (spawn_daemon_via_wmi) set CREATE_NO_WINDOW on the launching powershell but NOT on the Win32_Process.Create call — Win32_Process.Create does not inherit it, so the spawned cmd.exe env-forwarding wrapper popped a console window on every cold-start (violating REQ-INSTALL-10's v0.7.4 no-persistent-window invariant; the old detached_no_inherit path set DETACHED_PROCESS|CREATE_NO_WINDOW). FIX: pass a Win32_ProcessStartup with CreateFlags=DETACHED_PROCESS (0x8 — no console so no window; CREATE_NO_WINDOW 0x08000000 is NOT a valid Win32_ProcessStartup flag → ReturnValue 21 invalid-param, which is why the naive port fails) + ShowWindow=SW_HIDE(0) belt, via the ProcessStartupInformation argument. (v0.12.2)",
2026-06-21T08:16:00.2778768Z       "requiredStages": [
2026-06-21T08:16:00.2778870Z         "impl",
2026-06-21T08:16:00.2779064Z         "unit",
2026-06-21T08:16:00.2779180Z         "int"
2026-06-21T08:16:00.2779284Z       ],
2026-06-21T08:16:00.2779403Z       "stages": {
2026-06-21T08:16:00.2779528Z         "doc": {
2026-06-21T08:16:00.2779650Z           "complete": false,
2026-06-21T08:16:00.2779766Z           "evidence": []
2026-06-21T08:16:00.2779866Z         },
2026-06-21T08:16:00.2779970Z         "impl": {
2026-06-21T08:16:00.2780084Z           "complete": true,
2026-06-21T08:16:00.2780202Z           "evidence": [
2026-06-21T08:16:00.2780296Z             {
2026-06-21T08:16:00.2780444Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2780578Z               "line": 925
2026-06-21T08:16:00.2780672Z             },
2026-06-21T08:16:00.2780788Z             {
2026-06-21T08:16:00.2780930Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2781045Z               "line": 994
2026-06-21T08:16:00.2781145Z             }
2026-06-21T08:16:00.2781254Z           ]
2026-06-21T08:16:00.2781355Z         },
2026-06-21T08:16:00.2781460Z         "int": {
2026-06-21T08:16:00.2781569Z           "complete": true,
2026-06-21T08:16:00.2781669Z           "evidence": [
2026-06-21T08:16:00.2781779Z             {
2026-06-21T08:16:00.2781927Z               "path": "crates/spt/tests/job_escape_e2e.rs",
2026-06-21T08:16:00.2782038Z               "line": 187
2026-06-21T08:16:00.2782141Z             },
2026-06-21T08:16:00.2782246Z             {
2026-06-21T08:16:00.2782381Z               "path": "crates/spt/tests/job_escape_e2e.rs",
2026-06-21T08:16:00.2782494Z               "line": 348
2026-06-21T08:16:00.2782604Z             }
2026-06-21T08:16:00.2782705Z           ]
2026-06-21T08:16:00.2782808Z         },
2026-06-21T08:16:00.2782922Z         "unit": {
2026-06-21T08:16:00.2783027Z           "complete": true,
2026-06-21T08:16:00.2783137Z           "evidence": [
2026-06-21T08:16:00.2783236Z             {
2026-06-21T08:16:00.2783386Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.2783494Z               "line": 1206
2026-06-21T08:16:00.2783590Z             },
2026-06-21T08:16:00.2783696Z             {
2026-06-21T08:16:00.2783823Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2783943Z               "line": 8116
2026-06-21T08:16:00.2784043Z             }
2026-06-21T08:16:00.2784152Z           ]
2026-06-21T08:16:00.2784248Z         }
2026-06-21T08:16:00.2784358Z       }
2026-06-21T08:16:00.2784463Z     },
2026-06-21T08:16:00.2784568Z     {
2026-06-21T08:16:00.2784701Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-21T08:16:00.2784912Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-21T08:16:00.2785034Z       "requiredStages": [
2026-06-21T08:16:00.2785153Z         "impl",
2026-06-21T08:16:00.2785253Z         "unit"
2026-06-21T08:16:00.2785357Z       ],
2026-06-21T08:16:00.2785465Z       "stages": {
2026-06-21T08:16:00.2785570Z         "doc": {
2026-06-21T08:16:00.2785686Z           "complete": false,
2026-06-21T08:16:00.2785803Z           "evidence": []
2026-06-21T08:16:00.2785904Z         },
2026-06-21T08:16:00.2786009Z         "impl": {
2026-06-21T08:16:00.2786128Z           "complete": true,
2026-06-21T08:16:00.2786229Z           "evidence": [
2026-06-21T08:16:00.2786334Z             {
2026-06-21T08:16:00.2786481Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2786596Z               "line": 262
2026-06-21T08:16:00.2786700Z             },
2026-06-21T08:16:00.2786815Z             {
2026-06-21T08:16:00.2786962Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2787072Z               "line": 307
2026-06-21T08:16:00.2787286Z             },
2026-06-21T08:16:00.2787386Z             {
2026-06-21T08:16:00.2787624Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2787735Z               "line": 319
2026-06-21T08:16:00.2787841Z             }
2026-06-21T08:16:00.2787939Z           ]
2026-06-21T08:16:00.2788039Z         },
2026-06-21T08:16:00.2788149Z         "int": {
2026-06-21T08:16:00.2788256Z           "complete": false,
2026-06-21T08:16:00.2788374Z           "evidence": []
2026-06-21T08:16:00.2788476Z         },
2026-06-21T08:16:00.2788585Z         "unit": {
2026-06-21T08:16:00.2788704Z           "complete": true,
2026-06-21T08:16:00.2788814Z           "evidence": [
2026-06-21T08:16:00.2788923Z             {
2026-06-21T08:16:00.2789495Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2789620Z               "line": 455
2026-06-21T08:16:00.2789731Z             },
2026-06-21T08:16:00.2789839Z             {
2026-06-21T08:16:00.2789982Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.2790107Z               "line": 499
2026-06-21T08:16:00.2790216Z             }
2026-06-21T08:16:00.2790307Z           ]
2026-06-21T08:16:00.2790412Z         }
2026-06-21T08:16:00.2790506Z       }
2026-06-21T08:16:00.2790610Z     },
2026-06-21T08:16:00.2790711Z     {
2026-06-21T08:16:00.2790832Z       "id": "REQ-HOST-RUN-1",
2026-06-21T08:16:00.2793284Z       "title": "spt-hosted harness bringup: `spt endpoint run` spawns an adapter's `[session.self]` command template into a broker-held PTY (the spawn-session seam, brain.rs spawn_session_pid — same broker path shellhost.rs launch_shell_brokered_in uses for shells, now for kind=\"harness\" self-role), registers the perch under the given endpoint id, returns the id. Reverses today's harness-hosted-only launch (external launcher → `api bind`). Non-interactive flag set (--adapter <a[:profile]> --id <id> --create --resume <session> --attach|--start|--view) covers every terminal action of the W2 interactive picker so shortcuts (cc-<id>) bake fully non-interactive launches; composite adapter:profile resolves via registry::resolve_option leaf-replace overlay.",
2026-06-21T08:16:00.2793439Z       "requiredStages": [
2026-06-21T08:16:00.2793544Z         "impl",
2026-06-21T08:16:00.2793655Z         "unit",
2026-06-21T08:16:00.2793759Z         "int"
2026-06-21T08:16:00.2793859Z       ],
2026-06-21T08:16:00.2793965Z       "stages": {
2026-06-21T08:16:00.2794069Z         "doc": {
2026-06-21T08:16:00.2794189Z           "complete": false,
2026-06-21T08:16:00.2794298Z           "evidence": []
2026-06-21T08:16:00.2794403Z         },
2026-06-21T08:16:00.2794503Z         "impl": {
2026-06-21T08:16:00.2794613Z           "complete": true,
2026-06-21T08:16:00.2794732Z           "evidence": [
2026-06-21T08:16:00.2794828Z             {
2026-06-21T08:16:00.2794994Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T08:16:00.2795104Z               "line": 30
2026-06-21T08:16:00.2795209Z             },
2026-06-21T08:16:00.2795317Z             {
2026-06-21T08:16:00.2795467Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T08:16:00.2795585Z               "line": 76
2026-06-21T08:16:00.2795689Z             },
2026-06-21T08:16:00.2795794Z             {
2026-06-21T08:16:00.2795945Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T08:16:00.2796058Z               "line": 181
2026-06-21T08:16:00.2796169Z             },
2026-06-21T08:16:00.2796278Z             {
2026-06-21T08:16:00.2796416Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2796526Z               "line": 1266
2026-06-21T08:16:00.2796635Z             }
2026-06-21T08:16:00.2796731Z           ]
2026-06-21T08:16:00.2796837Z         },
2026-06-21T08:16:00.2796941Z         "int": {
2026-06-21T08:16:00.2797051Z           "complete": true,
2026-06-21T08:16:00.2797161Z           "evidence": [
2026-06-21T08:16:00.2797265Z             {
2026-06-21T08:16:00.2797413Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T08:16:00.2797641Z               "line": 285
2026-06-21T08:16:00.2797757Z             }
2026-06-21T08:16:00.2797956Z           ]
2026-06-21T08:16:00.2798058Z         },
2026-06-21T08:16:00.2798171Z         "unit": {
2026-06-21T08:16:00.2798281Z           "complete": true,
2026-06-21T08:16:00.2798387Z           "evidence": [
2026-06-21T08:16:00.2798495Z             {
2026-06-21T08:16:00.2798647Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T08:16:00.2798761Z               "line": 229
2026-06-21T08:16:00.2798864Z             },
2026-06-21T08:16:00.2799031Z             {
2026-06-21T08:16:00.2799178Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T08:16:00.2799293Z               "line": 296
2026-06-21T08:16:00.2799393Z             },
2026-06-21T08:16:00.2799502Z             {
2026-06-21T08:16:00.2799651Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T08:16:00.2799756Z               "line": 419
2026-06-21T08:16:00.2799860Z             }
2026-06-21T08:16:00.2799961Z           ]
2026-06-21T08:16:00.2800070Z         }
2026-06-21T08:16:00.2800175Z       }
2026-06-21T08:16:00.2800281Z     },
2026-06-21T08:16:00.2800385Z     {
2026-06-21T08:16:00.2800494Z       "id": "REQ-HOST-RUN-2",
2026-06-21T08:16:00.2802242Z       "title": "Project-scoped working directory for spt-hosted bringup: `spt endpoint run` lands the broker-spawned harness PTY in the user's PROJECT cwd, not the daemon's, via an additive `SpawnReq.cwd` field carried through the broker PTY spawn (portable-pty CommandBuilder cwd). N-1-safe wire change (additive, defaulted). Required because the consumer (Claude Code) is project-scoped: broker-inherited cwd = the daemon's cwd = the wrong `.claude`, wrong session history, wrong digest source; `cc <id>` at a project root MUST land the harness in that project. W1 ships broker-inherited cwd as a bringup-proof shortcut only; this REQ must land before the M12 gate (doyle, 2026-06-14).",
2026-06-21T08:16:00.2802370Z       "requiredStages": [
2026-06-21T08:16:00.2802470Z         "impl",
2026-06-21T08:16:00.2802575Z         "unit",
2026-06-21T08:16:00.2802685Z         "int"
2026-06-21T08:16:00.2802789Z       ],
2026-06-21T08:16:00.2802895Z       "stages": {
2026-06-21T08:16:00.2803004Z         "doc": {
2026-06-21T08:16:00.2803119Z           "complete": false,
2026-06-21T08:16:00.2803229Z           "evidence": []
2026-06-21T08:16:00.2803333Z         },
2026-06-21T08:16:00.2803439Z         "impl": {
2026-06-21T08:16:00.2803557Z           "complete": true,
2026-06-21T08:16:00.2803672Z           "evidence": [
2026-06-21T08:16:00.2803777Z             {
2026-06-21T08:16:00.2803933Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T08:16:00.2804042Z               "line": 182
2026-06-21T08:16:00.2804153Z             },
2026-06-21T08:16:00.2804253Z             {
2026-06-21T08:16:00.2804395Z               "path": "crates/spt-term/src/pty.rs",
2026-06-21T08:16:00.2804501Z               "line": 113
2026-06-21T08:16:00.2804610Z             }
2026-06-21T08:16:00.2804710Z           ]
2026-06-21T08:16:00.2804811Z         },
2026-06-21T08:16:00.2804915Z         "int": {
2026-06-21T08:16:00.2805030Z           "complete": true,
2026-06-21T08:16:00.2805149Z           "evidence": [
2026-06-21T08:16:00.2805254Z             {
2026-06-21T08:16:00.2805403Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T08:16:00.2805506Z               "line": 572
2026-06-21T08:16:00.2805616Z             }
2026-06-21T08:16:00.2805718Z           ]
2026-06-21T08:16:00.2805821Z         },
2026-06-21T08:16:00.2805931Z         "unit": {
2026-06-21T08:16:00.2806037Z           "complete": true,
2026-06-21T08:16:00.2806145Z           "evidence": [
2026-06-21T08:16:00.2806249Z             {
2026-06-21T08:16:00.2806392Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-21T08:16:00.2806514Z               "line": 86
2026-06-21T08:16:00.2806614Z             }
2026-06-21T08:16:00.2806714Z           ]
2026-06-21T08:16:00.2806923Z         }
2026-06-21T08:16:00.2807020Z       }
2026-06-21T08:16:00.2807115Z     },
2026-06-21T08:16:00.2807214Z     {
2026-06-21T08:16:00.2807425Z       "id": "REQ-INFRA-1",
2026-06-21T08:16:00.2807626Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-21T08:16:00.2807754Z       "requiredStages": [],
2026-06-21T08:16:00.2807863Z       "stages": {
2026-06-21T08:16:00.2807974Z         "doc": {
2026-06-21T08:16:00.2808092Z           "complete": false,
2026-06-21T08:16:00.2808206Z           "evidence": []
2026-06-21T08:16:00.2808308Z         },
2026-06-21T08:16:00.2808412Z         "impl": {
2026-06-21T08:16:00.2808531Z           "complete": false,
2026-06-21T08:16:00.2808632Z           "evidence": []
2026-06-21T08:16:00.2808736Z         },
2026-06-21T08:16:00.2808841Z         "int": {
2026-06-21T08:16:00.2809041Z           "complete": false,
2026-06-21T08:16:00.2809159Z           "evidence": []
2026-06-21T08:16:00.2809255Z         },
2026-06-21T08:16:00.2809367Z         "unit": {
2026-06-21T08:16:00.2809471Z           "complete": false,
2026-06-21T08:16:00.2809611Z           "evidence": []
2026-06-21T08:16:00.2809720Z         }
2026-06-21T08:16:00.2809820Z       }
2026-06-21T08:16:00.2809926Z     },
2026-06-21T08:16:00.2810030Z     {
2026-06-21T08:16:00.2810153Z       "id": "REQ-INST-1",
2026-06-21T08:16:00.2810336Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-21T08:16:00.2810459Z       "requiredStages": [],
2026-06-21T08:16:00.2810574Z       "stages": {
2026-06-21T08:16:00.2810674Z         "doc": {
2026-06-21T08:16:00.2810797Z           "complete": false,
2026-06-21T08:16:00.2810908Z           "evidence": []
2026-06-21T08:16:00.2811012Z         },
2026-06-21T08:16:00.2811112Z         "impl": {
2026-06-21T08:16:00.2811223Z           "complete": false,
2026-06-21T08:16:00.2811341Z           "evidence": []
2026-06-21T08:16:00.2811442Z         },
2026-06-21T08:16:00.2811552Z         "int": {
2026-06-21T08:16:00.2811654Z           "complete": false,
2026-06-21T08:16:00.2811779Z           "evidence": []
2026-06-21T08:16:00.2811883Z         },
2026-06-21T08:16:00.2811991Z         "unit": {
2026-06-21T08:16:00.2812110Z           "complete": false,
2026-06-21T08:16:00.2812221Z           "evidence": []
2026-06-21T08:16:00.2812324Z         }
2026-06-21T08:16:00.2812430Z       }
2026-06-21T08:16:00.2812534Z     },
2026-06-21T08:16:00.2812639Z     {
2026-06-21T08:16:00.2812759Z       "id": "REQ-INST-10",
2026-06-21T08:16:00.2812996Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-21T08:16:00.2813112Z       "requiredStages": [
2026-06-21T08:16:00.2813211Z         "impl",
2026-06-21T08:16:00.2813307Z         "unit"
2026-06-21T08:16:00.2813418Z       ],
2026-06-21T08:16:00.2813526Z       "stages": {
2026-06-21T08:16:00.2813631Z         "doc": {
2026-06-21T08:16:00.2813751Z           "complete": false,
2026-06-21T08:16:00.2813854Z           "evidence": []
2026-06-21T08:16:00.2813965Z         },
2026-06-21T08:16:00.2814071Z         "impl": {
2026-06-21T08:16:00.2814183Z           "complete": true,
2026-06-21T08:16:00.2814294Z           "evidence": [
2026-06-21T08:16:00.2814400Z             {
2026-06-21T08:16:00.2814546Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2814651Z               "line": 648
2026-06-21T08:16:00.2814756Z             },
2026-06-21T08:16:00.2814865Z             {
2026-06-21T08:16:00.2815028Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2815132Z               "line": 725
2026-06-21T08:16:00.2815241Z             },
2026-06-21T08:16:00.2815352Z             {
2026-06-21T08:16:00.2815494Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-21T08:16:00.2815609Z               "line": 13
2026-06-21T08:16:00.2815700Z             },
2026-06-21T08:16:00.2815800Z             {
2026-06-21T08:16:00.2815938Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-21T08:16:00.2816043Z               "line": 67
2026-06-21T08:16:00.2816273Z             },
2026-06-21T08:16:00.2816377Z             {
2026-06-21T08:16:00.2816524Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T08:16:00.2816734Z               "line": 18
2026-06-21T08:16:00.2816843Z             },
2026-06-21T08:16:00.2816943Z             {
2026-06-21T08:16:00.2817089Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T08:16:00.2817198Z               "line": 444
2026-06-21T08:16:00.2817294Z             }
2026-06-21T08:16:00.2817394Z           ]
2026-06-21T08:16:00.2817488Z         },
2026-06-21T08:16:00.2817594Z         "int": {
2026-06-21T08:16:00.2817703Z           "complete": false,
2026-06-21T08:16:00.2817808Z           "evidence": []
2026-06-21T08:16:00.2817914Z         },
2026-06-21T08:16:00.2818018Z         "unit": {
2026-06-21T08:16:00.2818142Z           "complete": true,
2026-06-21T08:16:00.2818248Z           "evidence": [
2026-06-21T08:16:00.2818357Z             {
2026-06-21T08:16:00.2818505Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2818633Z               "line": 932
2026-06-21T08:16:00.2818738Z             },
2026-06-21T08:16:00.2818859Z             {
2026-06-21T08:16:00.2819096Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2819206Z               "line": 1309
2026-06-21T08:16:00.2819310Z             },
2026-06-21T08:16:00.2819416Z             {
2026-06-21T08:16:00.2819559Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2819681Z               "line": 1320
2026-06-21T08:16:00.2819776Z             },
2026-06-21T08:16:00.2819890Z             {
2026-06-21T08:16:00.2820036Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2820146Z               "line": 1336
2026-06-21T08:16:00.2820256Z             },
2026-06-21T08:16:00.2820360Z             {
2026-06-21T08:16:00.2820505Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2820613Z               "line": 1352
2026-06-21T08:16:00.2820728Z             },
2026-06-21T08:16:00.2820829Z             {
2026-06-21T08:16:00.2820975Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2821100Z               "line": 1374
2026-06-21T08:16:00.2821205Z             },
2026-06-21T08:16:00.2821314Z             {
2026-06-21T08:16:00.2821453Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2821562Z               "line": 1679
2026-06-21T08:16:00.2821663Z             },
2026-06-21T08:16:00.2821764Z             {
2026-06-21T08:16:00.2821911Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-21T08:16:00.2822022Z               "line": 130
2026-06-21T08:16:00.2822121Z             },
2026-06-21T08:16:00.2822224Z             {
2026-06-21T08:16:00.2822367Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-21T08:16:00.2822471Z               "line": 167
2026-06-21T08:16:00.2822579Z             },
2026-06-21T08:16:00.2822689Z             {
2026-06-21T08:16:00.2822823Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-21T08:16:00.2822946Z               "line": 175
2026-06-21T08:16:00.2823048Z             },
2026-06-21T08:16:00.2823157Z             {
2026-06-21T08:16:00.2823300Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-21T08:16:00.2823409Z               "line": 183
2026-06-21T08:16:00.2823518Z             },
2026-06-21T08:16:00.2823620Z             {
2026-06-21T08:16:00.2823752Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T08:16:00.2823857Z               "line": 896
2026-06-21T08:16:00.2823963Z             }
2026-06-21T08:16:00.2824067Z           ]
2026-06-21T08:16:00.2824181Z         }
2026-06-21T08:16:00.2824283Z       }
2026-06-21T08:16:00.2824387Z     },
2026-06-21T08:16:00.2824486Z     {
2026-06-21T08:16:00.2824607Z       "id": "REQ-INST-11",
2026-06-21T08:16:00.2824850Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-21T08:16:00.2824960Z       "requiredStages": [
2026-06-21T08:16:00.2825176Z         "impl",
2026-06-21T08:16:00.2825292Z         "unit"
2026-06-21T08:16:00.2825396Z       ],
2026-06-21T08:16:00.2825602Z       "stages": {
2026-06-21T08:16:00.2825711Z         "doc": {
2026-06-21T08:16:00.2825835Z           "complete": false,
2026-06-21T08:16:00.2825950Z           "evidence": []
2026-06-21T08:16:00.2826063Z         },
2026-06-21T08:16:00.2826174Z         "impl": {
2026-06-21T08:16:00.2826293Z           "complete": true,
2026-06-21T08:16:00.2826402Z           "evidence": [
2026-06-21T08:16:00.2826499Z             {
2026-06-21T08:16:00.2826655Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2826770Z               "line": 514
2026-06-21T08:16:00.2826876Z             },
2026-06-21T08:16:00.2826989Z             {
2026-06-21T08:16:00.2827142Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.2827252Z               "line": 297
2026-06-21T08:16:00.2827360Z             },
2026-06-21T08:16:00.2827464Z             {
2026-06-21T08:16:00.2827620Z               "path": "crates/spt-store/src/rename.rs",
2026-06-21T08:16:00.2827729Z               "line": 59
2026-06-21T08:16:00.2827840Z             },
2026-06-21T08:16:00.2827949Z             {
2026-06-21T08:16:00.2828078Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2828188Z               "line": 5291
2026-06-21T08:16:00.2828292Z             },
2026-06-21T08:16:00.2828397Z             {
2026-06-21T08:16:00.2828531Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2828659Z               "line": 7137
2026-06-21T08:16:00.2828765Z             }
2026-06-21T08:16:00.2828870Z           ]
2026-06-21T08:16:00.2829036Z         },
2026-06-21T08:16:00.2829141Z         "int": {
2026-06-21T08:16:00.2829265Z           "complete": false,
2026-06-21T08:16:00.2829370Z           "evidence": []
2026-06-21T08:16:00.2829475Z         },
2026-06-21T08:16:00.2829585Z         "unit": {
2026-06-21T08:16:00.2829695Z           "complete": true,
2026-06-21T08:16:00.2829813Z           "evidence": [
2026-06-21T08:16:00.2829918Z             {
2026-06-21T08:16:00.2830063Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2830185Z               "line": 1479
2026-06-21T08:16:00.2830293Z             },
2026-06-21T08:16:00.2830389Z             {
2026-06-21T08:16:00.2830544Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2830659Z               "line": 1512
2026-06-21T08:16:00.2830769Z             },
2026-06-21T08:16:00.2830873Z             {
2026-06-21T08:16:00.2831026Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.2831145Z               "line": 527
2026-06-21T08:16:00.2831244Z             },
2026-06-21T08:16:00.2831351Z             {
2026-06-21T08:16:00.2831493Z               "path": "crates/spt-store/src/rename.rs",
2026-06-21T08:16:00.2831607Z               "line": 160
2026-06-21T08:16:00.2831708Z             },
2026-06-21T08:16:00.2831799Z             {
2026-06-21T08:16:00.2831942Z               "path": "crates/spt-store/src/rename.rs",
2026-06-21T08:16:00.2832065Z               "line": 190
2026-06-21T08:16:00.2832175Z             },
2026-06-21T08:16:00.2832281Z             {
2026-06-21T08:16:00.2832427Z               "path": "crates/spt-store/src/rename.rs",
2026-06-21T08:16:00.2832543Z               "line": 225
2026-06-21T08:16:00.2832639Z             },
2026-06-21T08:16:00.2832747Z             {
2026-06-21T08:16:00.2832879Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2832994Z               "line": 7994
2026-06-21T08:16:00.2833092Z             }
2026-06-21T08:16:00.2833196Z           ]
2026-06-21T08:16:00.2833303Z         }
2026-06-21T08:16:00.2833407Z       }
2026-06-21T08:16:00.2833511Z     },
2026-06-21T08:16:00.2833613Z     {
2026-06-21T08:16:00.2833731Z       "id": "REQ-INST-12",
2026-06-21T08:16:00.2834051Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-21T08:16:00.2834165Z       "requiredStages": [
2026-06-21T08:16:00.2834394Z         "impl",
2026-06-21T08:16:00.2834494Z         "unit"
2026-06-21T08:16:00.2834685Z       ],
2026-06-21T08:16:00.2834794Z       "stages": {
2026-06-21T08:16:00.2834900Z         "doc": {
2026-06-21T08:16:00.2835019Z           "complete": false,
2026-06-21T08:16:00.2835139Z           "evidence": []
2026-06-21T08:16:00.2835252Z         },
2026-06-21T08:16:00.2835357Z         "impl": {
2026-06-21T08:16:00.2835482Z           "complete": true,
2026-06-21T08:16:00.2835591Z           "evidence": [
2026-06-21T08:16:00.2835704Z             {
2026-06-21T08:16:00.2835853Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2835975Z               "line": 566
2026-06-21T08:16:00.2836085Z             },
2026-06-21T08:16:00.2836191Z             {
2026-06-21T08:16:00.2836342Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2836453Z               "line": 659
2026-06-21T08:16:00.2836553Z             },
2026-06-21T08:16:00.2836667Z             {
2026-06-21T08:16:00.2836816Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2836939Z               "line": 739
2026-06-21T08:16:00.2837034Z             },
2026-06-21T08:16:00.2837135Z             {
2026-06-21T08:16:00.2837272Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T08:16:00.2837379Z               "line": 96
2026-06-21T08:16:00.2837488Z             },
2026-06-21T08:16:00.2837592Z             {
2026-06-21T08:16:00.2837741Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T08:16:00.2837849Z               "line": 269
2026-06-21T08:16:00.2837958Z             },
2026-06-21T08:16:00.2838058Z             {
2026-06-21T08:16:00.2838204Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-21T08:16:00.2838323Z               "line": 148
2026-06-21T08:16:00.2838424Z             }
2026-06-21T08:16:00.2838533Z           ]
2026-06-21T08:16:00.2838638Z         },
2026-06-21T08:16:00.2838738Z         "int": {
2026-06-21T08:16:00.2838857Z           "complete": false,
2026-06-21T08:16:00.2839044Z           "evidence": []
2026-06-21T08:16:00.2839153Z         },
2026-06-21T08:16:00.2839267Z         "unit": {
2026-06-21T08:16:00.2839391Z           "complete": true,
2026-06-21T08:16:00.2839486Z           "evidence": [
2026-06-21T08:16:00.2839606Z             {
2026-06-21T08:16:00.2839749Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2839858Z               "line": 1554
2026-06-21T08:16:00.2839965Z             },
2026-06-21T08:16:00.2840068Z             {
2026-06-21T08:16:00.2840221Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2840331Z               "line": 1577
2026-06-21T08:16:00.2840440Z             },
2026-06-21T08:16:00.2840546Z             {
2026-06-21T08:16:00.2840693Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2840797Z               "line": 1614
2026-06-21T08:16:00.2840897Z             },
2026-06-21T08:16:00.2841010Z             {
2026-06-21T08:16:00.2841151Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T08:16:00.2841262Z               "line": 457
2026-06-21T08:16:00.2841367Z             },
2026-06-21T08:16:00.2841471Z             {
2026-06-21T08:16:00.2841625Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-21T08:16:00.2841733Z               "line": 185
2026-06-21T08:16:00.2841839Z             },
2026-06-21T08:16:00.2841944Z             {
2026-06-21T08:16:00.2842091Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-21T08:16:00.2842202Z               "line": 206
2026-06-21T08:16:00.2842306Z             },
2026-06-21T08:16:00.2842416Z             {
2026-06-21T08:16:00.2842555Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-21T08:16:00.2842668Z               "line": 232
2026-06-21T08:16:00.2842768Z             }
2026-06-21T08:16:00.2842874Z           ]
2026-06-21T08:16:00.2842978Z         }
2026-06-21T08:16:00.2843078Z       }
2026-06-21T08:16:00.2843297Z     },
2026-06-21T08:16:00.2843396Z     {
2026-06-21T08:16:00.2843516Z       "id": "REQ-INST-13",
2026-06-21T08:16:00.2843810Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-21T08:16:00.2843934Z       "requiredStages": [
2026-06-21T08:16:00.2844038Z         "impl",
2026-06-21T08:16:00.2844149Z         "unit"
2026-06-21T08:16:00.2844258Z       ],
2026-06-21T08:16:00.2844362Z       "stages": {
2026-06-21T08:16:00.2844468Z         "doc": {
2026-06-21T08:16:00.2844577Z           "complete": false,
2026-06-21T08:16:00.2844691Z           "evidence": []
2026-06-21T08:16:00.2844792Z         },
2026-06-21T08:16:00.2844896Z         "impl": {
2026-06-21T08:16:00.2845006Z           "complete": true,
2026-06-21T08:16:00.2845112Z           "evidence": [
2026-06-21T08:16:00.2845216Z             {
2026-06-21T08:16:00.2845359Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T08:16:00.2845474Z               "line": 100
2026-06-21T08:16:00.2845579Z             },
2026-06-21T08:16:00.2845689Z             {
2026-06-21T08:16:00.2845840Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-21T08:16:00.2845975Z               "line": 171
2026-06-21T08:16:00.2846085Z             }
2026-06-21T08:16:00.2846188Z           ]
2026-06-21T08:16:00.2846297Z         },
2026-06-21T08:16:00.2846403Z         "int": {
2026-06-21T08:16:00.2846522Z           "complete": false,
2026-06-21T08:16:00.2846635Z           "evidence": []
2026-06-21T08:16:00.2846737Z         },
2026-06-21T08:16:00.2846851Z         "unit": {
2026-06-21T08:16:00.2846965Z           "complete": true,
2026-06-21T08:16:00.2847080Z           "evidence": [
2026-06-21T08:16:00.2847184Z             {
2026-06-21T08:16:00.2847333Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-21T08:16:00.2847441Z               "line": 261
2026-06-21T08:16:00.2847546Z             },
2026-06-21T08:16:00.2847657Z             {
2026-06-21T08:16:00.2847805Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-21T08:16:00.2847929Z               "line": 279
2026-06-21T08:16:00.2848029Z             }
2026-06-21T08:16:00.2848148Z           ]
2026-06-21T08:16:00.2848258Z         }
2026-06-21T08:16:00.2848358Z       }
2026-06-21T08:16:00.2848466Z     },
2026-06-21T08:16:00.2848571Z     {
2026-06-21T08:16:00.2851660Z       "id": "REQ-INST-14",
2026-06-21T08:16:00.2852098Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-21T08:16:00.2852233Z       "requiredStages": [
2026-06-21T08:16:00.2852332Z         "doc",
2026-06-21T08:16:00.2852438Z         "impl",
2026-06-21T08:16:00.2852547Z         "unit"
2026-06-21T08:16:00.2852646Z       ],
2026-06-21T08:16:00.2852772Z       "stages": {
2026-06-21T08:16:00.2852880Z         "doc": {
2026-06-21T08:16:00.2852999Z           "complete": true,
2026-06-21T08:16:00.2853111Z           "evidence": [
2026-06-21T08:16:00.2853209Z             {
2026-06-21T08:16:00.2853348Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.2853458Z               "line": 588
2026-06-21T08:16:00.2853567Z             },
2026-06-21T08:16:00.2853663Z             {
2026-06-21T08:16:00.2853797Z               "path": "docs/STORAGE.md",
2026-06-21T08:16:00.2853900Z               "line": 49
2026-06-21T08:16:00.2853995Z             }
2026-06-21T08:16:00.2854100Z           ]
2026-06-21T08:16:00.2854198Z         },
2026-06-21T08:16:00.2854307Z         "impl": {
2026-06-21T08:16:00.2854418Z           "complete": true,
2026-06-21T08:16:00.2854527Z           "evidence": [
2026-06-21T08:16:00.2854632Z             {
2026-06-21T08:16:00.2854790Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.2854898Z               "line": 410
2026-06-21T08:16:00.2855000Z             },
2026-06-21T08:16:00.2855104Z             {
2026-06-21T08:16:00.2855256Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2855367Z               "line": 367
2026-06-21T08:16:00.2855624Z             },
2026-06-21T08:16:00.2855729Z             {
2026-06-21T08:16:00.2855876Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.2856081Z               "line": 293
2026-06-21T08:16:00.2856191Z             },
2026-06-21T08:16:00.2856293Z             {
2026-06-21T08:16:00.2856434Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2856545Z               "line": 1577
2026-06-21T08:16:00.2856640Z             }
2026-06-21T08:16:00.2856748Z           ]
2026-06-21T08:16:00.2856852Z         },
2026-06-21T08:16:00.2856953Z         "int": {
2026-06-21T08:16:00.2857072Z           "complete": false,
2026-06-21T08:16:00.2857191Z           "evidence": []
2026-06-21T08:16:00.2857288Z         },
2026-06-21T08:16:00.2857392Z         "unit": {
2026-06-21T08:16:00.2857511Z           "complete": true,
2026-06-21T08:16:00.2857621Z           "evidence": [
2026-06-21T08:16:00.2857726Z             {
2026-06-21T08:16:00.2857888Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.2858011Z               "line": 1163
2026-06-21T08:16:00.2858111Z             },
2026-06-21T08:16:00.2858222Z             {
2026-06-21T08:16:00.2858360Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2858474Z               "line": 944
2026-06-21T08:16:00.2858575Z             },
2026-06-21T08:16:00.2858683Z             {
2026-06-21T08:16:00.2858838Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2859016Z               "line": 1205
2026-06-21T08:16:00.2859116Z             },
2026-06-21T08:16:00.2859226Z             {
2026-06-21T08:16:00.2859372Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.2859486Z               "line": 659
2026-06-21T08:16:00.2859597Z             },
2026-06-21T08:16:00.2859700Z             {
2026-06-21T08:16:00.2859835Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2859949Z               "line": 8070
2026-06-21T08:16:00.2860063Z             }
2026-06-21T08:16:00.2860160Z           ]
2026-06-21T08:16:00.2860259Z         }
2026-06-21T08:16:00.2860358Z       }
2026-06-21T08:16:00.2860469Z     },
2026-06-21T08:16:00.2860569Z     {
2026-06-21T08:16:00.2860683Z       "id": "REQ-INST-15",
2026-06-21T08:16:00.2861438Z       "title": "Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)",
2026-06-21T08:16:00.2861560Z       "requiredStages": [
2026-06-21T08:16:00.2861695Z         "doc",
2026-06-21T08:16:00.2861795Z         "impl",
2026-06-21T08:16:00.2861898Z         "unit"
2026-06-21T08:16:00.2862003Z       ],
2026-06-21T08:16:00.2862108Z       "stages": {
2026-06-21T08:16:00.2862220Z         "doc": {
2026-06-21T08:16:00.2862339Z           "complete": true,
2026-06-21T08:16:00.2862454Z           "evidence": [
2026-06-21T08:16:00.2862563Z             {
2026-06-21T08:16:00.2862768Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-21T08:16:00.2862877Z               "line": 3
2026-06-21T08:16:00.2862983Z             }
2026-06-21T08:16:00.2863088Z           ]
2026-06-21T08:16:00.2863192Z         },
2026-06-21T08:16:00.2863303Z         "impl": {
2026-06-21T08:16:00.2863416Z           "complete": true,
2026-06-21T08:16:00.2863521Z           "evidence": [
2026-06-21T08:16:00.2863622Z             {
2026-06-21T08:16:00.2863779Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.2863898Z               "line": 353
2026-06-21T08:16:00.2864004Z             },
2026-06-21T08:16:00.2864098Z             {
2026-06-21T08:16:00.2864243Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T08:16:00.2864347Z               "line": 60
2026-06-21T08:16:00.2864455Z             },
2026-06-21T08:16:00.2864560Z             {
2026-06-21T08:16:00.2864716Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.2864935Z               "line": 368
2026-06-21T08:16:00.2865040Z             },
2026-06-21T08:16:00.2865225Z             {
2026-06-21T08:16:00.2865369Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.2865477Z               "line": 417
2026-06-21T08:16:00.2865631Z             },
2026-06-21T08:16:00.2865745Z             {
2026-06-21T08:16:00.2865894Z               "path": "crates/spt-store/src/home.rs",
2026-06-21T08:16:00.2865998Z               "line": 19
2026-06-21T08:16:00.2866107Z             },
2026-06-21T08:16:00.2866209Z             {
2026-06-21T08:16:00.2866351Z               "path": "crates/spt-store/src/home.rs",
2026-06-21T08:16:00.2866470Z               "line": 70
2026-06-21T08:16:00.2866575Z             },
2026-06-21T08:16:00.2866684Z             {
2026-06-21T08:16:00.2866819Z               "path": "crates/spt-store/src/home.rs",
2026-06-21T08:16:00.2866932Z               "line": 96
2026-06-21T08:16:00.2867028Z             },
2026-06-21T08:16:00.2867138Z             {
2026-06-21T08:16:00.2867275Z               "path": "crates/spt-store/src/home.rs",
2026-06-21T08:16:00.2867388Z               "line": 121
2026-06-21T08:16:00.2867499Z             },
2026-06-21T08:16:00.2867600Z             {
2026-06-21T08:16:00.2867737Z               "path": "crates/spt-store/src/home.rs",
2026-06-21T08:16:00.2867833Z               "line": 172
2026-06-21T08:16:00.2867938Z             },
2026-06-21T08:16:00.2868032Z             {
2026-06-21T08:16:00.2868172Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.2868276Z               "line": 178
2026-06-21T08:16:00.2868371Z             },
2026-06-21T08:16:00.2868467Z             {
2026-06-21T08:16:00.2868591Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2868715Z               "line": 1469
2026-06-21T08:16:00.2868844Z             }
2026-06-21T08:16:00.2869039Z           ]
2026-06-21T08:16:00.2869144Z         },
2026-06-21T08:16:00.2869248Z         "int": {
2026-06-21T08:16:00.2869373Z           "complete": false,
2026-06-21T08:16:00.2869488Z           "evidence": []
2026-06-21T08:16:00.2869605Z         },
2026-06-21T08:16:00.2869705Z         "unit": {
2026-06-21T08:16:00.2869814Z           "complete": true,
2026-06-21T08:16:00.2869927Z           "evidence": [
2026-06-21T08:16:00.2870032Z             {
2026-06-21T08:16:00.2870185Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.2870299Z               "line": 577
2026-06-21T08:16:00.2870395Z             },
2026-06-21T08:16:00.2870500Z             {
2026-06-21T08:16:00.2870637Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.2870748Z               "line": 638
2026-06-21T08:16:00.2870852Z             },
2026-06-21T08:16:00.2870957Z             {
2026-06-21T08:16:00.2871096Z               "path": "crates/spt-store/src/home.rs",
2026-06-21T08:16:00.2871205Z               "line": 213
2026-06-21T08:16:00.2871306Z             },
2026-06-21T08:16:00.2871410Z             {
2026-06-21T08:16:00.2871548Z               "path": "crates/spt-store/src/home.rs",
2026-06-21T08:16:00.2871669Z               "line": 249
2026-06-21T08:16:00.2871772Z             },
2026-06-21T08:16:00.2871877Z             {
2026-06-21T08:16:00.2872007Z               "path": "crates/spt-store/src/home.rs",
2026-06-21T08:16:00.2872110Z               "line": 262
2026-06-21T08:16:00.2872221Z             },
2026-06-21T08:16:00.2872327Z             {
2026-06-21T08:16:00.2872463Z               "path": "crates/spt-store/src/home.rs",
2026-06-21T08:16:00.2872573Z               "line": 338
2026-06-21T08:16:00.2872677Z             },
2026-06-21T08:16:00.2872780Z             {
2026-06-21T08:16:00.2872909Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.2873019Z               "line": 690
2026-06-21T08:16:00.2873123Z             },
2026-06-21T08:16:00.2873229Z             {
2026-06-21T08:16:00.2873368Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2873592Z               "line": 8007
2026-06-21T08:16:00.2873701Z             },
2026-06-21T08:16:00.2873810Z             {
2026-06-21T08:16:00.2874015Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2874139Z               "line": 9837
2026-06-21T08:16:00.2874245Z             }
2026-06-21T08:16:00.2874348Z           ]
2026-06-21T08:16:00.2874449Z         }
2026-06-21T08:16:00.2874555Z       }
2026-06-21T08:16:00.2874658Z     },
2026-06-21T08:16:00.2874749Z     {
2026-06-21T08:16:00.2874865Z       "id": "REQ-INST-2",
2026-06-21T08:16:00.2875006Z       "title": "Per-node files, synced Psyche mind",
2026-06-21T08:16:00.2875130Z       "requiredStages": [
2026-06-21T08:16:00.2875239Z         "impl",
2026-06-21T08:16:00.2875337Z         "unit"
2026-06-21T08:16:00.2875442Z       ],
2026-06-21T08:16:00.2875552Z       "stages": {
2026-06-21T08:16:00.2875657Z         "doc": {
2026-06-21T08:16:00.2875762Z           "complete": false,
2026-06-21T08:16:00.2875900Z           "evidence": []
2026-06-21T08:16:00.2876009Z         },
2026-06-21T08:16:00.2876115Z         "impl": {
2026-06-21T08:16:00.2876234Z           "complete": true,
2026-06-21T08:16:00.2876406Z           "evidence": [
2026-06-21T08:16:00.2876515Z             {
2026-06-21T08:16:00.2876672Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.2876783Z               "line": 108
2026-06-21T08:16:00.2876892Z             },
2026-06-21T08:16:00.2877001Z             {
2026-06-21T08:16:00.2877131Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-21T08:16:00.2877235Z               "line": 28
2026-06-21T08:16:00.2877345Z             },
2026-06-21T08:16:00.2877451Z             {
2026-06-21T08:16:00.2877602Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-21T08:16:00.2877713Z               "line": 74
2026-06-21T08:16:00.2877807Z             },
2026-06-21T08:16:00.2877916Z             {
2026-06-21T08:16:00.2878050Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-21T08:16:00.2878164Z               "line": 96
2026-06-21T08:16:00.2878277Z             },
2026-06-21T08:16:00.2878379Z             {
2026-06-21T08:16:00.2878512Z               "path": "crates/spt-live/src/resume.rs",
2026-06-21T08:16:00.2878621Z               "line": 86
2026-06-21T08:16:00.2878727Z             },
2026-06-21T08:16:00.2878832Z             {
2026-06-21T08:16:00.2879046Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-21T08:16:00.2879151Z               "line": 118
2026-06-21T08:16:00.2879255Z             }
2026-06-21T08:16:00.2879357Z           ]
2026-06-21T08:16:00.2879470Z         },
2026-06-21T08:16:00.2879575Z         "int": {
2026-06-21T08:16:00.2879695Z           "complete": false,
2026-06-21T08:16:00.2879803Z           "evidence": []
2026-06-21T08:16:00.2879909Z         },
2026-06-21T08:16:00.2880019Z         "unit": {
2026-06-21T08:16:00.2880132Z           "complete": true,
2026-06-21T08:16:00.2880251Z           "evidence": [
2026-06-21T08:16:00.2880360Z             {
2026-06-21T08:16:00.2880506Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-21T08:16:00.2880630Z               "line": 250
2026-06-21T08:16:00.2880735Z             },
2026-06-21T08:16:00.2880844Z             {
2026-06-21T08:16:00.2880984Z               "path": "crates/spt-live/src/resume.rs",
2026-06-21T08:16:00.2881102Z               "line": 280
2026-06-21T08:16:00.2881202Z             }
2026-06-21T08:16:00.2881313Z           ]
2026-06-21T08:16:00.2881412Z         }
2026-06-21T08:16:00.2881517Z       }
2026-06-21T08:16:00.2881618Z     },
2026-06-21T08:16:00.2881722Z     {
2026-06-21T08:16:00.2881841Z       "id": "REQ-INST-3",
2026-06-21T08:16:00.2882018Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-21T08:16:00.2882137Z       "requiredStages": [
2026-06-21T08:16:00.2882243Z         "doc",
2026-06-21T08:16:00.2882351Z         "impl",
2026-06-21T08:16:00.2882452Z         "unit"
2026-06-21T08:16:00.2882553Z       ],
2026-06-21T08:16:00.2882671Z       "stages": {
2026-06-21T08:16:00.2882777Z         "doc": {
2026-06-21T08:16:00.2882995Z           "complete": true,
2026-06-21T08:16:00.2883104Z           "evidence": [
2026-06-21T08:16:00.2883312Z             {
2026-06-21T08:16:00.2883450Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-21T08:16:00.2883560Z               "line": 3
2026-06-21T08:16:00.2883669Z             }
2026-06-21T08:16:00.2883779Z           ]
2026-06-21T08:16:00.2883884Z         },
2026-06-21T08:16:00.2883993Z         "impl": {
2026-06-21T08:16:00.2884099Z           "complete": true,
2026-06-21T08:16:00.2884208Z           "evidence": [
2026-06-21T08:16:00.2884308Z             {
2026-06-21T08:16:00.2884452Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-21T08:16:00.2884560Z               "line": 59
2026-06-21T08:16:00.2884670Z             },
2026-06-21T08:16:00.2884767Z             {
2026-06-21T08:16:00.2884913Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T08:16:00.2885023Z               "line": 480
2026-06-21T08:16:00.2885129Z             },
2026-06-21T08:16:00.2885237Z             {
2026-06-21T08:16:00.2885392Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.2885505Z               "line": 254
2026-06-21T08:16:00.2885614Z             },
2026-06-21T08:16:00.2885718Z             {
2026-06-21T08:16:00.2885860Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.2885968Z               "line": 384
2026-06-21T08:16:00.2886079Z             },
2026-06-21T08:16:00.2886179Z             {
2026-06-21T08:16:00.2886326Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.2886441Z               "line": 418
2026-06-21T08:16:00.2886545Z             },
2026-06-21T08:16:00.2886646Z             {
2026-06-21T08:16:00.2886784Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-21T08:16:00.2886893Z               "line": 74
2026-06-21T08:16:00.2886995Z             },
2026-06-21T08:16:00.2887094Z             {
2026-06-21T08:16:00.2887251Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.2887367Z               "line": 234
2026-06-21T08:16:00.2887467Z             },
2026-06-21T08:16:00.2887566Z             {
2026-06-21T08:16:00.2887719Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.2887833Z               "line": 396
2026-06-21T08:16:00.2887935Z             },
2026-06-21T08:16:00.2888039Z             {
2026-06-21T08:16:00.2888181Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2888288Z               "line": 45
2026-06-21T08:16:00.2888391Z             },
2026-06-21T08:16:00.2888500Z             {
2026-06-21T08:16:00.2888648Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2888757Z               "line": 114
2026-06-21T08:16:00.2888862Z             },
2026-06-21T08:16:00.2889025Z             {
2026-06-21T08:16:00.2889171Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2889278Z               "line": 152
2026-06-21T08:16:00.2889382Z             },
2026-06-21T08:16:00.2889482Z             {
2026-06-21T08:16:00.2889611Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2889739Z               "line": 168
2026-06-21T08:16:00.2889840Z             },
2026-06-21T08:16:00.2889950Z             {
2026-06-21T08:16:00.2890097Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2890199Z               "line": 178
2026-06-21T08:16:00.2890302Z             },
2026-06-21T08:16:00.2890402Z             {
2026-06-21T08:16:00.2890547Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2890650Z               "line": 210
2026-06-21T08:16:00.2890759Z             },
2026-06-21T08:16:00.2890864Z             {
2026-06-21T08:16:00.2891010Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2891114Z               "line": 287
2026-06-21T08:16:00.2891220Z             },
2026-06-21T08:16:00.2891329Z             {
2026-06-21T08:16:00.2891568Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2891686Z               "line": 311
2026-06-21T08:16:00.2891887Z             },
2026-06-21T08:16:00.2891977Z             {
2026-06-21T08:16:00.2892126Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2892235Z               "line": 389
2026-06-21T08:16:00.2892339Z             },
2026-06-21T08:16:00.2892441Z             {
2026-06-21T08:16:00.2892578Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2892697Z               "line": 438
2026-06-21T08:16:00.2892798Z             },
2026-06-21T08:16:00.2892907Z             {
2026-06-21T08:16:00.2893046Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-21T08:16:00.2893160Z               "line": 37
2026-06-21T08:16:00.2893265Z             },
2026-06-21T08:16:00.2893370Z             {
2026-06-21T08:16:00.2893522Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2893635Z               "line": 62
2026-06-21T08:16:00.2893745Z             },
2026-06-21T08:16:00.2893839Z             {
2026-06-21T08:16:00.2893971Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.2894087Z               "line": 279
2026-06-21T08:16:00.2894201Z             },
2026-06-21T08:16:00.2894301Z             {
2026-06-21T08:16:00.2894435Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2894549Z               "line": 1848
2026-06-21T08:16:00.2894639Z             }
2026-06-21T08:16:00.2894750Z           ]
2026-06-21T08:16:00.2894849Z         },
2026-06-21T08:16:00.2894959Z         "int": {
2026-06-21T08:16:00.2895079Z           "complete": false,
2026-06-21T08:16:00.2895193Z           "evidence": []
2026-06-21T08:16:00.2895298Z         },
2026-06-21T08:16:00.2895408Z         "unit": {
2026-06-21T08:16:00.2895526Z           "complete": true,
2026-06-21T08:16:00.2895633Z           "evidence": [
2026-06-21T08:16:00.2895741Z             {
2026-06-21T08:16:00.2895889Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-21T08:16:00.2896000Z               "line": 360
2026-06-21T08:16:00.2896107Z             },
2026-06-21T08:16:00.2896216Z             {
2026-06-21T08:16:00.2896364Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.2896490Z               "line": 837
2026-06-21T08:16:00.2896596Z             },
2026-06-21T08:16:00.2896702Z             {
2026-06-21T08:16:00.2896848Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.2896964Z               "line": 894
2026-06-21T08:16:00.2897073Z             },
2026-06-21T08:16:00.2897182Z             {
2026-06-21T08:16:00.2897335Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.2897449Z               "line": 889
2026-06-21T08:16:00.2897560Z             },
2026-06-21T08:16:00.2897654Z             {
2026-06-21T08:16:00.2897802Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.2897913Z               "line": 1014
2026-06-21T08:16:00.2898017Z             },
2026-06-21T08:16:00.2898131Z             {
2026-06-21T08:16:00.2898284Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.2898407Z               "line": 1264
2026-06-21T08:16:00.2898514Z             },
2026-06-21T08:16:00.2898622Z             {
2026-06-21T08:16:00.2898771Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.2898891Z               "line": 1405
2026-06-21T08:16:00.2899060Z             },
2026-06-21T08:16:00.2899160Z             {
2026-06-21T08:16:00.2899313Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2899422Z               "line": 449
2026-06-21T08:16:00.2899528Z             },
2026-06-21T08:16:00.2899632Z             {
2026-06-21T08:16:00.2899771Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2899885Z               "line": 485
2026-06-21T08:16:00.2899989Z             },
2026-06-21T08:16:00.2900095Z             {
2026-06-21T08:16:00.2900342Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2900458Z               "line": 540
2026-06-21T08:16:00.2900652Z             },
2026-06-21T08:16:00.2900754Z             {
2026-06-21T08:16:00.2900895Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2901001Z               "line": 697
2026-06-21T08:16:00.2901107Z             },
2026-06-21T08:16:00.2901200Z             {
2026-06-21T08:16:00.2901347Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2901452Z               "line": 931
2026-06-21T08:16:00.2901560Z             },
2026-06-21T08:16:00.2901669Z             {
2026-06-21T08:16:00.2901809Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2901932Z               "line": 945
2026-06-21T08:16:00.2902032Z             },
2026-06-21T08:16:00.2902137Z             {
2026-06-21T08:16:00.2902284Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2902400Z               "line": 1290
2026-06-21T08:16:00.2902513Z             },
2026-06-21T08:16:00.2902618Z             {
2026-06-21T08:16:00.2902771Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.2902871Z               "line": 609
2026-06-21T08:16:00.2902981Z             },
2026-06-21T08:16:00.2903090Z             {
2026-06-21T08:16:00.2903224Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2903345Z               "line": 8031
2026-06-21T08:16:00.2903443Z             }
2026-06-21T08:16:00.2903548Z           ]
2026-06-21T08:16:00.2903650Z         }
2026-06-21T08:16:00.2903753Z       }
2026-06-21T08:16:00.2903859Z     },
2026-06-21T08:16:00.2903960Z     {
2026-06-21T08:16:00.2904073Z       "id": "REQ-INST-4",
2026-06-21T08:16:00.2904272Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-21T08:16:00.2904385Z       "requiredStages": [
2026-06-21T08:16:00.2904493Z         "impl",
2026-06-21T08:16:00.2904599Z         "unit"
2026-06-21T08:16:00.2904699Z       ],
2026-06-21T08:16:00.2904804Z       "stages": {
2026-06-21T08:16:00.2904914Z         "doc": {
2026-06-21T08:16:00.2905024Z           "complete": false,
2026-06-21T08:16:00.2905142Z           "evidence": []
2026-06-21T08:16:00.2905239Z         },
2026-06-21T08:16:00.2905352Z         "impl": {
2026-06-21T08:16:00.2905470Z           "complete": true,
2026-06-21T08:16:00.2905572Z           "evidence": [
2026-06-21T08:16:00.2905677Z             {
2026-06-21T08:16:00.2905829Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.2905944Z               "line": 385
2026-06-21T08:16:00.2906048Z             },
2026-06-21T08:16:00.2906158Z             {
2026-06-21T08:16:00.2906311Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2906420Z               "line": 202
2026-06-21T08:16:00.2906536Z             },
2026-06-21T08:16:00.2906630Z             {
2026-06-21T08:16:00.2906767Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2906881Z               "line": 234
2026-06-21T08:16:00.2907022Z             },
2026-06-21T08:16:00.2907147Z             {
2026-06-21T08:16:00.2907300Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2907413Z               "line": 274
2026-06-21T08:16:00.2907519Z             }
2026-06-21T08:16:00.2907633Z           ]
2026-06-21T08:16:00.2907733Z         },
2026-06-21T08:16:00.2907839Z         "int": {
2026-06-21T08:16:00.2907953Z           "complete": false,
2026-06-21T08:16:00.2908057Z           "evidence": []
2026-06-21T08:16:00.2908168Z         },
2026-06-21T08:16:00.2908277Z         "unit": {
2026-06-21T08:16:00.2908391Z           "complete": true,
2026-06-21T08:16:00.2908492Z           "evidence": [
2026-06-21T08:16:00.2908601Z             {
2026-06-21T08:16:00.2908754Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.2908858Z               "line": 889
2026-06-21T08:16:00.2909079Z             },
2026-06-21T08:16:00.2909187Z             {
2026-06-21T08:16:00.2909432Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2909535Z               "line": 561
2026-06-21T08:16:00.2909730Z             },
2026-06-21T08:16:00.2909836Z             {
2026-06-21T08:16:00.2909973Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2910084Z               "line": 668
2026-06-21T08:16:00.2910188Z             },
2026-06-21T08:16:00.2910297Z             {
2026-06-21T08:16:00.2910440Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2910545Z               "line": 750
2026-06-21T08:16:00.2910655Z             }
2026-06-21T08:16:00.2910760Z           ]
2026-06-21T08:16:00.2910860Z         }
2026-06-21T08:16:00.2910965Z       }
2026-06-21T08:16:00.2911075Z     },
2026-06-21T08:16:00.2911179Z     {
2026-06-21T08:16:00.2911300Z       "id": "REQ-INST-5",
2026-06-21T08:16:00.2911508Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-21T08:16:00.2911628Z       "requiredStages": [
2026-06-21T08:16:00.2911747Z         "impl",
2026-06-21T08:16:00.2911846Z         "unit",
2026-06-21T08:16:00.2911950Z         "int"
2026-06-21T08:16:00.2912055Z       ],
2026-06-21T08:16:00.2912177Z       "stages": {
2026-06-21T08:16:00.2912287Z         "doc": {
2026-06-21T08:16:00.2912402Z           "complete": false,
2026-06-21T08:16:00.2912520Z           "evidence": []
2026-06-21T08:16:00.2912611Z         },
2026-06-21T08:16:00.2912726Z         "impl": {
2026-06-21T08:16:00.2912830Z           "complete": true,
2026-06-21T08:16:00.2912946Z           "evidence": [
2026-06-21T08:16:00.2913055Z             {
2026-06-21T08:16:00.2913208Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-21T08:16:00.2913312Z               "line": 85
2026-06-21T08:16:00.2913422Z             },
2026-06-21T08:16:00.2913527Z             {
2026-06-21T08:16:00.2913660Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T08:16:00.2913765Z               "line": 68
2026-06-21T08:16:00.2913881Z             },
2026-06-21T08:16:00.2913979Z             {
2026-06-21T08:16:00.2914108Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T08:16:00.2914229Z               "line": 99
2026-06-21T08:16:00.2914327Z             },
2026-06-21T08:16:00.2914428Z             {
2026-06-21T08:16:00.2914572Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T08:16:00.2914689Z               "line": 183
2026-06-21T08:16:00.2914794Z             },
2026-06-21T08:16:00.2914898Z             {
2026-06-21T08:16:00.2915026Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T08:16:00.2915144Z               "line": 314
2026-06-21T08:16:00.2915236Z             }
2026-06-21T08:16:00.2915345Z           ]
2026-06-21T08:16:00.2915445Z         },
2026-06-21T08:16:00.2915546Z         "int": {
2026-06-21T08:16:00.2915669Z           "complete": true,
2026-06-21T08:16:00.2915779Z           "evidence": [
2026-06-21T08:16:00.2915884Z             {
2026-06-21T08:16:00.2916036Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T08:16:00.2916156Z               "line": 156
2026-06-21T08:16:00.2916265Z             },
2026-06-21T08:16:00.2916360Z             {
2026-06-21T08:16:00.2916514Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-21T08:16:00.2916618Z               "line": 145
2026-06-21T08:16:00.2916728Z             },
2026-06-21T08:16:00.2916833Z             {
2026-06-21T08:16:00.2916990Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.2917106Z               "line": 707
2026-06-21T08:16:00.2917209Z             },
2026-06-21T08:16:00.2917317Z             {
2026-06-21T08:16:00.2917465Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.2917583Z               "line": 1069
2026-06-21T08:16:00.2917687Z             }
2026-06-21T08:16:00.2917793Z           ]
2026-06-21T08:16:00.2917907Z         },
2026-06-21T08:16:00.2918011Z         "unit": {
2026-06-21T08:16:00.2918131Z           "complete": true,
2026-06-21T08:16:00.2918326Z           "evidence": [
2026-06-21T08:16:00.2918441Z             {
2026-06-21T08:16:00.2918574Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T08:16:00.2918794Z               "line": 552
2026-06-21T08:16:00.2918903Z             },
2026-06-21T08:16:00.2919071Z             {
2026-06-21T08:16:00.2919218Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T08:16:00.2919333Z               "line": 595
2026-06-21T08:16:00.2919442Z             },
2026-06-21T08:16:00.2919547Z             {
2026-06-21T08:16:00.2919696Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-21T08:16:00.2919814Z               "line": 219
2026-06-21T08:16:00.2919920Z             }
2026-06-21T08:16:00.2920025Z           ]
2026-06-21T08:16:00.2920123Z         }
2026-06-21T08:16:00.2920232Z       }
2026-06-21T08:16:00.2920334Z     },
2026-06-21T08:16:00.2920438Z     {
2026-06-21T08:16:00.2920552Z       "id": "REQ-INST-6",
2026-06-21T08:16:00.2920762Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-21T08:16:00.2920891Z       "requiredStages": [
2026-06-21T08:16:00.2921015Z         "impl",
2026-06-21T08:16:00.2921124Z         "unit",
2026-06-21T08:16:00.2921225Z         "int"
2026-06-21T08:16:00.2921330Z       ],
2026-06-21T08:16:00.2921429Z       "stages": {
2026-06-21T08:16:00.2921530Z         "doc": {
2026-06-21T08:16:00.2921645Z           "complete": true,
2026-06-21T08:16:00.2921754Z           "evidence": [
2026-06-21T08:16:00.2921860Z             {
2026-06-21T08:16:00.2922001Z               "path": "docs/DEFERRED.md",
2026-06-21T08:16:00.2922101Z               "line": 13
2026-06-21T08:16:00.2922208Z             }
2026-06-21T08:16:00.2922312Z           ]
2026-06-21T08:16:00.2922416Z         },
2026-06-21T08:16:00.2922520Z         "impl": {
2026-06-21T08:16:00.2922643Z           "complete": true,
2026-06-21T08:16:00.2922756Z           "evidence": [
2026-06-21T08:16:00.2922842Z             {
2026-06-21T08:16:00.2922990Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T08:16:00.2923104Z               "line": 391
2026-06-21T08:16:00.2923219Z             },
2026-06-21T08:16:00.2923319Z             {
2026-06-21T08:16:00.2923467Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-21T08:16:00.2923572Z               "line": 27
2026-06-21T08:16:00.2923676Z             },
2026-06-21T08:16:00.2923787Z             {
2026-06-21T08:16:00.2923930Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-21T08:16:00.2924049Z               "line": 73
2026-06-21T08:16:00.2924155Z             },
2026-06-21T08:16:00.2924264Z             {
2026-06-21T08:16:00.2924402Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-21T08:16:00.2924502Z               "line": 182
2026-06-21T08:16:00.2924611Z             },
2026-06-21T08:16:00.2924717Z             {
2026-06-21T08:16:00.2924859Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2924969Z               "line": 426
2026-06-21T08:16:00.2925085Z             },
2026-06-21T08:16:00.2925188Z             {
2026-06-21T08:16:00.2925330Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-21T08:16:00.2925454Z               "line": 31
2026-06-21T08:16:00.2925552Z             },
2026-06-21T08:16:00.2925661Z             {
2026-06-21T08:16:00.2925801Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T08:16:00.2925909Z               "line": 202
2026-06-21T08:16:00.2926015Z             },
2026-06-21T08:16:00.2926115Z             {
2026-06-21T08:16:00.2926253Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T08:16:00.2926359Z               "line": 83
2026-06-21T08:16:00.2926463Z             },
2026-06-21T08:16:00.2926563Z             {
2026-06-21T08:16:00.2926693Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2926816Z               "line": 1849
2026-06-21T08:16:00.2926920Z             },
2026-06-21T08:16:00.2927031Z             {
2026-06-21T08:16:00.2927159Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T08:16:00.2927389Z               "line": 179
2026-06-21T08:16:00.2927488Z             },
2026-06-21T08:16:00.2927675Z             {
2026-06-21T08:16:00.2927816Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T08:16:00.2927930Z               "line": 215
2026-06-21T08:16:00.2928030Z             }
2026-06-21T08:16:00.2928133Z           ]
2026-06-21T08:16:00.2928238Z         },
2026-06-21T08:16:00.2928334Z         "int": {
2026-06-21T08:16:00.2928453Z           "complete": true,
2026-06-21T08:16:00.2928553Z           "evidence": [
2026-06-21T08:16:00.2928658Z             {
2026-06-21T08:16:00.2928815Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.2928926Z               "line": 721
2026-06-21T08:16:00.2929115Z             },
2026-06-21T08:16:00.2929226Z             {
2026-06-21T08:16:00.2929373Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.2929487Z               "line": 1114
2026-06-21T08:16:00.2929588Z             },
2026-06-21T08:16:00.2932448Z             {
2026-06-21T08:16:00.2932624Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T08:16:00.2932754Z               "line": 726
2026-06-21T08:16:00.2932862Z             }
2026-06-21T08:16:00.2932976Z           ]
2026-06-21T08:16:00.2933081Z         },
2026-06-21T08:16:00.2933180Z         "unit": {
2026-06-21T08:16:00.2933307Z           "complete": true,
2026-06-21T08:16:00.2933422Z           "evidence": [
2026-06-21T08:16:00.2933527Z             {
2026-06-21T08:16:00.2933684Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T08:16:00.2933799Z               "line": 661
2026-06-21T08:16:00.2933907Z             },
2026-06-21T08:16:00.2934008Z             {
2026-06-21T08:16:00.2934156Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.2934265Z               "line": 899
2026-06-21T08:16:00.2934371Z             },
2026-06-21T08:16:00.2934480Z             {
2026-06-21T08:16:00.2934623Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-21T08:16:00.2934743Z               "line": 66
2026-06-21T08:16:00.2934838Z             },
2026-06-21T08:16:00.2934947Z             {
2026-06-21T08:16:00.2935091Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T08:16:00.2935200Z               "line": 297
2026-06-21T08:16:00.2935311Z             },
2026-06-21T08:16:00.2935406Z             {
2026-06-21T08:16:00.2935548Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T08:16:00.2935659Z               "line": 203
2026-06-21T08:16:00.2935767Z             }
2026-06-21T08:16:00.2935867Z           ]
2026-06-21T08:16:00.2935971Z         }
2026-06-21T08:16:00.2936080Z       }
2026-06-21T08:16:00.2936184Z     },
2026-06-21T08:16:00.2936289Z     {
2026-06-21T08:16:00.2936399Z       "id": "REQ-INST-7",
2026-06-21T08:16:00.2936555Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-21T08:16:00.2936666Z       "requiredStages": [
2026-06-21T08:16:00.2936765Z         "impl",
2026-06-21T08:16:00.2936875Z         "unit",
2026-06-21T08:16:00.2936980Z         "int"
2026-06-21T08:16:00.2937085Z       ],
2026-06-21T08:16:00.2937195Z       "stages": {
2026-06-21T08:16:00.2937300Z         "doc": {
2026-06-21T08:16:00.2937418Z           "complete": false,
2026-06-21T08:16:00.2937539Z           "evidence": []
2026-06-21T08:16:00.2937643Z         },
2026-06-21T08:16:00.2937752Z         "impl": {
2026-06-21T08:16:00.2937868Z           "complete": true,
2026-06-21T08:16:00.2937972Z           "evidence": [
2026-06-21T08:16:00.2938072Z             {
2026-06-21T08:16:00.2938221Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T08:16:00.2938324Z               "line": 436
2026-06-21T08:16:00.2938428Z             },
2026-06-21T08:16:00.2938534Z             {
2026-06-21T08:16:00.2938693Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.2938803Z               "line": 27
2026-06-21T08:16:00.2938913Z             },
2026-06-21T08:16:00.2939228Z             {
2026-06-21T08:16:00.2939389Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.2939590Z               "line": 207
2026-06-21T08:16:00.2939694Z             },
2026-06-21T08:16:00.2939796Z             {
2026-06-21T08:16:00.2939943Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.2940052Z               "line": 344
2026-06-21T08:16:00.2940153Z             },
2026-06-21T08:16:00.2940253Z             {
2026-06-21T08:16:00.2940406Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-21T08:16:00.2940515Z               "line": 59
2026-06-21T08:16:00.2940620Z             },
2026-06-21T08:16:00.2940711Z             {
2026-06-21T08:16:00.2940863Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2940968Z               "line": 41
2026-06-21T08:16:00.2941079Z             },
2026-06-21T08:16:00.2941187Z             {
2026-06-21T08:16:00.2941333Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-21T08:16:00.2941454Z               "line": 27
2026-06-21T08:16:00.2941563Z             },
2026-06-21T08:16:00.2941672Z             {
2026-06-21T08:16:00.2941821Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-21T08:16:00.2941934Z               "line": 119
2026-06-21T08:16:00.2942041Z             },
2026-06-21T08:16:00.2942140Z             {
2026-06-21T08:16:00.2942292Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-21T08:16:00.2942403Z               "line": 134
2026-06-21T08:16:00.2942507Z             },
2026-06-21T08:16:00.2942611Z             {
2026-06-21T08:16:00.2942760Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T08:16:00.2942874Z               "line": 139
2026-06-21T08:16:00.2942980Z             }
2026-06-21T08:16:00.2943085Z           ]
2026-06-21T08:16:00.2943179Z         },
2026-06-21T08:16:00.2943284Z         "int": {
2026-06-21T08:16:00.2943404Z           "complete": true,
2026-06-21T08:16:00.2943512Z           "evidence": [
2026-06-21T08:16:00.2943622Z             {
2026-06-21T08:16:00.2943768Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-21T08:16:00.2943886Z               "line": 145
2026-06-21T08:16:00.2943991Z             },
2026-06-21T08:16:00.2944096Z             {
2026-06-21T08:16:00.2944244Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.2944354Z               "line": 665
2026-06-21T08:16:00.2944463Z             },
2026-06-21T08:16:00.2944563Z             {
2026-06-21T08:16:00.2944711Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.2944820Z               "line": 964
2026-06-21T08:16:00.2944926Z             }
2026-06-21T08:16:00.2945026Z           ]
2026-06-21T08:16:00.2945125Z         },
2026-06-21T08:16:00.2945232Z         "unit": {
2026-06-21T08:16:00.2945341Z           "complete": true,
2026-06-21T08:16:00.2945450Z           "evidence": [
2026-06-21T08:16:00.2945556Z             {
2026-06-21T08:16:00.2945717Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.2945837Z               "line": 1134
2026-06-21T08:16:00.2945943Z             },
2026-06-21T08:16:00.2946056Z             {
2026-06-21T08:16:00.2946210Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.2946327Z               "line": 1521
2026-06-21T08:16:00.2946431Z             },
2026-06-21T08:16:00.2946527Z             {
2026-06-21T08:16:00.2946686Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-21T08:16:00.2946801Z               "line": 84
2026-06-21T08:16:00.2946921Z             },
2026-06-21T08:16:00.2947020Z             {
2026-06-21T08:16:00.2947179Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2947293Z               "line": 812
2026-06-21T08:16:00.2947397Z             },
2026-06-21T08:16:00.2947503Z             {
2026-06-21T08:16:00.2947654Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2947760Z               "line": 823
2026-06-21T08:16:00.2947951Z             },
2026-06-21T08:16:00.2948060Z             {
2026-06-21T08:16:00.2948274Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2948379Z               "line": 838
2026-06-21T08:16:00.2948490Z             },
2026-06-21T08:16:00.2948598Z             {
2026-06-21T08:16:00.2948752Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-21T08:16:00.2948856Z               "line": 166
2026-06-21T08:16:00.2949026Z             },
2026-06-21T08:16:00.2949127Z             {
2026-06-21T08:16:00.2949282Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-21T08:16:00.2949396Z               "line": 181
2026-06-21T08:16:00.2949498Z             },
2026-06-21T08:16:00.2949601Z             {
2026-06-21T08:16:00.2949750Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-21T08:16:00.2949864Z               "line": 214
2026-06-21T08:16:00.2949963Z             }
2026-06-21T08:16:00.2950065Z           ]
2026-06-21T08:16:00.2950165Z         }
2026-06-21T08:16:00.2950264Z       }
2026-06-21T08:16:00.2950370Z     },
2026-06-21T08:16:00.2950469Z     {
2026-06-21T08:16:00.2950589Z       "id": "REQ-INST-8",
2026-06-21T08:16:00.2950765Z       "title": "Remote-control mode distinct from local operation",
2026-06-21T08:16:00.2950879Z       "requiredStages": [
2026-06-21T08:16:00.2950990Z         "impl",
2026-06-21T08:16:00.2951089Z         "unit",
2026-06-21T08:16:00.2951194Z         "int"
2026-06-21T08:16:00.2951286Z       ],
2026-06-21T08:16:00.2951385Z       "stages": {
2026-06-21T08:16:00.2951490Z         "doc": {
2026-06-21T08:16:00.2951619Z           "complete": false,
2026-06-21T08:16:00.2951728Z           "evidence": []
2026-06-21T08:16:00.2951832Z         },
2026-06-21T08:16:00.2951941Z         "impl": {
2026-06-21T08:16:00.2952057Z           "complete": true,
2026-06-21T08:16:00.2952166Z           "evidence": [
2026-06-21T08:16:00.2952271Z             {
2026-06-21T08:16:00.2952428Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-21T08:16:00.2952542Z               "line": 104
2026-06-21T08:16:00.2952648Z             },
2026-06-21T08:16:00.2952748Z             {
2026-06-21T08:16:00.2952891Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-21T08:16:00.2953010Z               "line": 351
2026-06-21T08:16:00.2953110Z             },
2026-06-21T08:16:00.2953215Z             {
2026-06-21T08:16:00.2953368Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-21T08:16:00.2953472Z               "line": 391
2026-06-21T08:16:00.2953583Z             },
2026-06-21T08:16:00.2953682Z             {
2026-06-21T08:16:00.2953821Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-21T08:16:00.2953926Z               "line": 62
2026-06-21T08:16:00.2954035Z             }
2026-06-21T08:16:00.2954134Z           ]
2026-06-21T08:16:00.2954234Z         },
2026-06-21T08:16:00.2954337Z         "int": {
2026-06-21T08:16:00.2954456Z           "complete": true,
2026-06-21T08:16:00.2954581Z           "evidence": [
2026-06-21T08:16:00.2954680Z             {
2026-06-21T08:16:00.2954833Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T08:16:00.2954952Z               "line": 415
2026-06-21T08:16:00.2955056Z             },
2026-06-21T08:16:00.2955158Z             {
2026-06-21T08:16:00.2955305Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.2955414Z               "line": 1028
2026-06-21T08:16:00.2955515Z             }
2026-06-21T08:16:00.2955625Z           ]
2026-06-21T08:16:00.2955734Z         },
2026-06-21T08:16:00.2955839Z         "unit": {
2026-06-21T08:16:00.2955963Z           "complete": true,
2026-06-21T08:16:00.2956073Z           "evidence": [
2026-06-21T08:16:00.2956178Z             {
2026-06-21T08:16:00.2956330Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T08:16:00.2956436Z               "line": 366
2026-06-21T08:16:00.2956540Z             },
2026-06-21T08:16:00.2956645Z             {
2026-06-21T08:16:00.2956916Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T08:16:00.2957025Z               "line": 633
2026-06-21T08:16:00.2957233Z             },
2026-06-21T08:16:00.2957337Z             {
2026-06-21T08:16:00.2957481Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-21T08:16:00.2957594Z               "line": 116
2026-06-21T08:16:00.2957700Z             },
2026-06-21T08:16:00.2957800Z             {
2026-06-21T08:16:00.2957942Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-21T08:16:00.2958044Z               "line": 160
2026-06-21T08:16:00.2958153Z             }
2026-06-21T08:16:00.2958252Z           ]
2026-06-21T08:16:00.2958363Z         }
2026-06-21T08:16:00.2958463Z       }
2026-06-21T08:16:00.2958567Z     },
2026-06-21T08:16:00.2958664Z     {
2026-06-21T08:16:00.2958773Z       "id": "REQ-INST-9",
2026-06-21T08:16:00.2959050Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-21T08:16:00.2959158Z       "requiredStages": [
2026-06-21T08:16:00.2959269Z         "impl",
2026-06-21T08:16:00.2959379Z         "unit"
2026-06-21T08:16:00.2959478Z       ],
2026-06-21T08:16:00.2959591Z       "stages": {
2026-06-21T08:16:00.2959697Z         "doc": {
2026-06-21T08:16:00.2959818Z           "complete": false,
2026-06-21T08:16:00.2959933Z           "evidence": []
2026-06-21T08:16:00.2960024Z         },
2026-06-21T08:16:00.2960128Z         "impl": {
2026-06-21T08:16:00.2960243Z           "complete": true,
2026-06-21T08:16:00.2960358Z           "evidence": [
2026-06-21T08:16:00.2960471Z             {
2026-06-21T08:16:00.2960620Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2960725Z               "line": 449
2026-06-21T08:16:00.2960829Z             }
2026-06-21T08:16:00.2960930Z           ]
2026-06-21T08:16:00.2961039Z         },
2026-06-21T08:16:00.2961139Z         "int": {
2026-06-21T08:16:00.2961264Z           "complete": false,
2026-06-21T08:16:00.2961378Z           "evidence": []
2026-06-21T08:16:00.2961487Z         },
2026-06-21T08:16:00.2961598Z         "unit": {
2026-06-21T08:16:00.2961706Z           "complete": true,
2026-06-21T08:16:00.2961816Z           "evidence": [
2026-06-21T08:16:00.2961923Z             {
2026-06-21T08:16:00.2962074Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2962180Z               "line": 1397
2026-06-21T08:16:00.2962289Z             },
2026-06-21T08:16:00.2962392Z             {
2026-06-21T08:16:00.2962526Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2962645Z               "line": 1406
2026-06-21T08:16:00.2962745Z             },
2026-06-21T08:16:00.2962850Z             {
2026-06-21T08:16:00.2962998Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2963097Z               "line": 1422
2026-06-21T08:16:00.2963203Z             },
2026-06-21T08:16:00.2963308Z             {
2026-06-21T08:16:00.2963456Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2963575Z               "line": 1434
2026-06-21T08:16:00.2963684Z             },
2026-06-21T08:16:00.2963790Z             {
2026-06-21T08:16:00.2963947Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.2964061Z               "line": 1454
2026-06-21T08:16:00.2964162Z             }
2026-06-21T08:16:00.2964271Z           ]
2026-06-21T08:16:00.2964361Z         }
2026-06-21T08:16:00.2964463Z       }
2026-06-21T08:16:00.2964561Z     },
2026-06-21T08:16:00.2964661Z     {
2026-06-21T08:16:00.2964785Z       "id": "REQ-INSTALL-1",
2026-06-21T08:16:00.2965006Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-21T08:16:00.2965131Z       "requiredStages": [
2026-06-21T08:16:00.2965231Z         "doc",
2026-06-21T08:16:00.2965340Z         "impl",
2026-06-21T08:16:00.2965446Z         "int"
2026-06-21T08:16:00.2965555Z       ],
2026-06-21T08:16:00.2965713Z       "stages": {
2026-06-21T08:16:00.2965823Z         "doc": {
2026-06-21T08:16:00.2965941Z           "complete": true,
2026-06-21T08:16:00.2966156Z           "evidence": [
2026-06-21T08:16:00.2966265Z             {
2026-06-21T08:16:00.2966475Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.2966585Z               "line": 754
2026-06-21T08:16:00.2966691Z             }
2026-06-21T08:16:00.2966785Z           ]
2026-06-21T08:16:00.2966890Z         },
2026-06-21T08:16:00.2966996Z         "impl": {
2026-06-21T08:16:00.2967114Z           "complete": true,
2026-06-21T08:16:00.2967219Z           "evidence": [
2026-06-21T08:16:00.2967321Z             {
2026-06-21T08:16:00.2967462Z               "path": "installer/install.ps1",
2026-06-21T08:16:00.2967561Z               "line": 57
2026-06-21T08:16:00.2967671Z             },
2026-06-21T08:16:00.2967774Z             {
2026-06-21T08:16:00.2967907Z               "path": "installer/install.sh",
2026-06-21T08:16:00.2968013Z               "line": 52
2026-06-21T08:16:00.2968117Z             }
2026-06-21T08:16:00.2968226Z           ]
2026-06-21T08:16:00.2968328Z         },
2026-06-21T08:16:00.2968441Z         "int": {
2026-06-21T08:16:00.2968546Z           "complete": true,
2026-06-21T08:16:00.2968657Z           "evidence": [
2026-06-21T08:16:00.2968770Z             {
2026-06-21T08:16:00.2969032Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-21T08:16:00.2969137Z               "line": 21
2026-06-21T08:16:00.2969243Z             }
2026-06-21T08:16:00.2969343Z           ]
2026-06-21T08:16:00.2969442Z         },
2026-06-21T08:16:00.2969558Z         "unit": {
2026-06-21T08:16:00.2969676Z           "complete": false,
2026-06-21T08:16:00.2969786Z           "evidence": []
2026-06-21T08:16:00.2969892Z         }
2026-06-21T08:16:00.2969996Z       }
2026-06-21T08:16:00.2970095Z     },
2026-06-21T08:16:00.2970195Z     {
2026-06-21T08:16:00.2970322Z       "id": "REQ-INSTALL-10",
2026-06-21T08:16:00.2971756Z       "title": "Windows at-logon autostart runs the daemon in the background with no persistent window: the scheduled task launches `spt daemon start` (which spawn_detaches a console-less DETACHED_PROCESS daemon and exits) rather than the foreground `spt daemon run` — Task Scheduler's interactive ONLOGON launch of a long-lived console process otherwise leaves a visible console window for the daemon's whole lifetime (v0.7.4)",
2026-06-21T08:16:00.2971895Z       "requiredStages": [
2026-06-21T08:16:00.2972004Z         "impl",
2026-06-21T08:16:00.2972110Z         "unit"
2026-06-21T08:16:00.2972219Z       ],
2026-06-21T08:16:00.2972323Z       "stages": {
2026-06-21T08:16:00.2972425Z         "doc": {
2026-06-21T08:16:00.2972534Z           "complete": false,
2026-06-21T08:16:00.2972648Z           "evidence": []
2026-06-21T08:16:00.2972754Z         },
2026-06-21T08:16:00.2972863Z         "impl": {
2026-06-21T08:16:00.2972986Z           "complete": true,
2026-06-21T08:16:00.2973100Z           "evidence": [
2026-06-21T08:16:00.2973192Z             {
2026-06-21T08:16:00.2973328Z               "path": "installer/install.ps1",
2026-06-21T08:16:00.2973435Z               "line": 191
2026-06-21T08:16:00.2973567Z             }
2026-06-21T08:16:00.2973672Z           ]
2026-06-21T08:16:00.2973778Z         },
2026-06-21T08:16:00.2973905Z         "int": {
2026-06-21T08:16:00.2974021Z           "complete": false,
2026-06-21T08:16:00.2974135Z           "evidence": []
2026-06-21T08:16:00.2974234Z         },
2026-06-21T08:16:00.2974340Z         "unit": {
2026-06-21T08:16:00.2974450Z           "complete": true,
2026-06-21T08:16:00.2974564Z           "evidence": [
2026-06-21T08:16:00.2974665Z             {
2026-06-21T08:16:00.2974816Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-21T08:16:00.2974922Z               "line": 211
2026-06-21T08:16:00.2975028Z             }
2026-06-21T08:16:00.2975131Z           ]
2026-06-21T08:16:00.2975225Z         }
2026-06-21T08:16:00.2975336Z       }
2026-06-21T08:16:00.2975429Z     },
2026-06-21T08:16:00.2975533Z     {
2026-06-21T08:16:00.2975663Z       "id": "REQ-INSTALL-11",
2026-06-21T08:16:00.2977450Z       "title": "Adapter command templates resolve their program against the adapter's install dir BEFORE PATH: a `.spt`-shipped binary (dropped to adapters/_github/<safe>/ by --release/--github acquisition, or kept in the source_dir under copy-mode where only manifest+strings/ are copied to adapters/<name>) runs without any PATH placement — a bare-name template token (e.g. `claude-spt-digest ...`) is rewritten to <install_dir>/<program>(.exe on Windows) when that file exists, else left bare for the PATH fallback. Makes a `.spt` self-contained (closes the --release bundled-binary gap perri confirmed) (v0.7.4)",
2026-06-21T08:16:00.2977765Z       "requiredStages": [
2026-06-21T08:16:00.2977866Z         "doc",
2026-06-21T08:16:00.2977961Z         "impl",
2026-06-21T08:16:00.2978064Z         "unit"
2026-06-21T08:16:00.2978169Z       ],
2026-06-21T08:16:00.2978273Z       "stages": {
2026-06-21T08:16:00.2978382Z         "doc": {
2026-06-21T08:16:00.2978486Z           "complete": true,
2026-06-21T08:16:00.2978602Z           "evidence": [
2026-06-21T08:16:00.2978720Z             {
2026-06-21T08:16:00.2978845Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.2979015Z               "line": 138
2026-06-21T08:16:00.2979135Z             },
2026-06-21T08:16:00.2979240Z             {
2026-06-21T08:16:00.2979368Z               "path": "docs/MANIFEST.md",
2026-06-21T08:16:00.2979479Z               "line": 82
2026-06-21T08:16:00.2979574Z             }
2026-06-21T08:16:00.2979683Z           ]
2026-06-21T08:16:00.2979784Z         },
2026-06-21T08:16:00.2979898Z         "impl": {
2026-06-21T08:16:00.2980012Z           "complete": true,
2026-06-21T08:16:00.2980114Z           "evidence": [
2026-06-21T08:16:00.2980218Z             {
2026-06-21T08:16:00.2980355Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T08:16:00.2980476Z               "line": 223
2026-06-21T08:16:00.2980579Z             },
2026-06-21T08:16:00.2980688Z             {
2026-06-21T08:16:00.2980850Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.2980962Z               "line": 99
2026-06-21T08:16:00.2981077Z             },
2026-06-21T08:16:00.2981178Z             {
2026-06-21T08:16:00.2981329Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.2981440Z               "line": 117
2026-06-21T08:16:00.2981550Z             },
2026-06-21T08:16:00.2981654Z             {
2026-06-21T08:16:00.2981802Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T08:16:00.2981906Z               "line": 332
2026-06-21T08:16:00.2982012Z             },
2026-06-21T08:16:00.2982122Z             {
2026-06-21T08:16:00.2982254Z               "path": "crates/spt-live/src/digest.rs",
2026-06-21T08:16:00.2982360Z               "line": 88
2026-06-21T08:16:00.2982460Z             },
2026-06-21T08:16:00.2982569Z             {
2026-06-21T08:16:00.2982713Z               "path": "crates/spt-live/src/digest.rs",
2026-06-21T08:16:00.2982821Z               "line": 104
2026-06-21T08:16:00.2982927Z             },
2026-06-21T08:16:00.2983033Z             {
2026-06-21T08:16:00.2983189Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2983296Z               "line": 297
2026-06-21T08:16:00.2983409Z             },
2026-06-21T08:16:00.2983508Z             {
2026-06-21T08:16:00.2983656Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2983766Z               "line": 332
2026-06-21T08:16:00.2983860Z             },
2026-06-21T08:16:00.2983965Z             {
2026-06-21T08:16:00.2984109Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2984218Z               "line": 523
2026-06-21T08:16:00.2984324Z             },
2026-06-21T08:16:00.2984428Z             {
2026-06-21T08:16:00.2984576Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2984686Z               "line": 546
2026-06-21T08:16:00.2984790Z             },
2026-06-21T08:16:00.2984891Z             {
2026-06-21T08:16:00.2985033Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2985249Z               "line": 561
2026-06-21T08:16:00.2985348Z             },
2026-06-21T08:16:00.2985458Z             {
2026-06-21T08:16:00.2985681Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T08:16:00.2985790Z               "line": 492
2026-06-21T08:16:00.2985896Z             }
2026-06-21T08:16:00.2986003Z           ]
2026-06-21T08:16:00.2986107Z         },
2026-06-21T08:16:00.2986213Z         "int": {
2026-06-21T08:16:00.2986332Z           "complete": false,
2026-06-21T08:16:00.2986436Z           "evidence": []
2026-06-21T08:16:00.2986542Z         },
2026-06-21T08:16:00.2986656Z         "unit": {
2026-06-21T08:16:00.2986765Z           "complete": true,
2026-06-21T08:16:00.2986876Z           "evidence": [
2026-06-21T08:16:00.2986971Z             {
2026-06-21T08:16:00.2987119Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2987228Z               "line": 799
2026-06-21T08:16:00.2987333Z             },
2026-06-21T08:16:00.2987443Z             {
2026-06-21T08:16:00.2987595Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2987710Z               "line": 811
2026-06-21T08:16:00.2987816Z             },
2026-06-21T08:16:00.2987920Z             {
2026-06-21T08:16:00.2988068Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.2988178Z               "line": 820
2026-06-21T08:16:00.2988287Z             }
2026-06-21T08:16:00.2988383Z           ]
2026-06-21T08:16:00.2988484Z         }
2026-06-21T08:16:00.2988592Z       }
2026-06-21T08:16:00.2988695Z     },
2026-06-21T08:16:00.2988796Z     {
2026-06-21T08:16:00.2988927Z       "id": "REQ-INSTALL-12",
2026-06-21T08:16:00.2991637Z       "title": "Durable active-profile pointer for bind-time profile selection (ADR-0021): adapters/active-profiles.toml at the registry ROOT (sibling to the per-adapter <name>/ dirs, so adapter add/update/remove — which only rewrite a <name>/ subdir — can never clobber it), a flat host_binary → \"adapter[:profile]\" map. Read at bind as the PRIMARY profile selector; unset → the registered_at_ms fallback (REQ-START-5). Written ONLY by `spt adapter use <adapter>[:profile]` (resolves the adapter's host_binaries → sets each binary→adapter[:profile]); `spt adapter use --clear <adapter|binary>` drops. NEVER auto-written by install/update/adapter add (that is precisely what would let an update silently flip the active profile). A stale pointer (uninstalled adapter / deleted profile) self-heals: ignored, fall back, warn once. Pruned on adapter remove. Atomic write (spt_store atomic). (v0.9.0)",
2026-06-21T08:16:00.2991799Z       "requiredStages": [
2026-06-21T08:16:00.2991909Z         "doc",
2026-06-21T08:16:00.2992015Z         "impl",
2026-06-21T08:16:00.2992119Z         "unit",
2026-06-21T08:16:00.2992223Z         "int"
2026-06-21T08:16:00.2992324Z       ],
2026-06-21T08:16:00.2992429Z       "stages": {
2026-06-21T08:16:00.2992538Z         "doc": {
2026-06-21T08:16:00.2992649Z           "complete": true,
2026-06-21T08:16:00.2992763Z           "evidence": [
2026-06-21T08:16:00.2992891Z             {
2026-06-21T08:16:00.2993016Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.2993134Z               "line": 185
2026-06-21T08:16:00.2993240Z             }
2026-06-21T08:16:00.2993349Z           ]
2026-06-21T08:16:00.2993449Z         },
2026-06-21T08:16:00.2993560Z         "impl": {
2026-06-21T08:16:00.2993668Z           "complete": true,
2026-06-21T08:16:00.2993778Z           "evidence": [
2026-06-21T08:16:00.2993880Z             {
2026-06-21T08:16:00.2994039Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T08:16:00.2994144Z               "line": 27
2026-06-21T08:16:00.2994245Z             },
2026-06-21T08:16:00.2994354Z             {
2026-06-21T08:16:00.2994502Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T08:16:00.2994616Z               "line": 223
2026-06-21T08:16:00.2994725Z             },
2026-06-21T08:16:00.2994822Z             {
2026-06-21T08:16:00.2994960Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2995194Z               "line": 5677
2026-06-21T08:16:00.2995298Z             }
2026-06-21T08:16:00.2995494Z           ]
2026-06-21T08:16:00.2995603Z         },
2026-06-21T08:16:00.2995713Z         "int": {
2026-06-21T08:16:00.2995833Z           "complete": true,
2026-06-21T08:16:00.2995951Z           "evidence": [
2026-06-21T08:16:00.2996057Z             {
2026-06-21T08:16:00.2996205Z               "path": "crates/spt/tests/live_resolve_e2e.rs",
2026-06-21T08:16:00.2996318Z               "line": 19
2026-06-21T08:16:00.2996418Z             }
2026-06-21T08:16:00.2996527Z           ]
2026-06-21T08:16:00.2996630Z         },
2026-06-21T08:16:00.2996740Z         "unit": {
2026-06-21T08:16:00.2996845Z           "complete": true,
2026-06-21T08:16:00.2996958Z           "evidence": [
2026-06-21T08:16:00.2997064Z             {
2026-06-21T08:16:00.2997212Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T08:16:00.2997321Z               "line": 395
2026-06-21T08:16:00.2997437Z             },
2026-06-21T08:16:00.2997541Z             {
2026-06-21T08:16:00.2997674Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T08:16:00.2997789Z               "line": 421
2026-06-21T08:16:00.2997888Z             },
2026-06-21T08:16:00.2997988Z             {
2026-06-21T08:16:00.2998136Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T08:16:00.2998241Z               "line": 440
2026-06-21T08:16:00.2998347Z             },
2026-06-21T08:16:00.2998451Z             {
2026-06-21T08:16:00.2998604Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T08:16:00.2998715Z               "line": 475
2026-06-21T08:16:00.2998813Z             },
2026-06-21T08:16:00.2998924Z             {
2026-06-21T08:16:00.2999142Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.2999265Z               "line": 8665
2026-06-21T08:16:00.2999371Z             }
2026-06-21T08:16:00.2999478Z           ]
2026-06-21T08:16:00.2999577Z         }
2026-06-21T08:16:00.2999693Z       }
2026-06-21T08:16:00.2999792Z     },
2026-06-21T08:16:00.2999892Z     {
2026-06-21T08:16:00.3000017Z       "id": "REQ-INSTALL-2",
2026-06-21T08:16:00.3000183Z       "title": "Marketplace-repackaging-friendly install",
2026-06-21T08:16:00.3000294Z       "requiredStages": [
2026-06-21T08:16:00.3000394Z         "doc"
2026-06-21T08:16:00.3000498Z       ],
2026-06-21T08:16:00.3000609Z       "stages": {
2026-06-21T08:16:00.3000713Z         "doc": {
2026-06-21T08:16:00.3000832Z           "complete": true,
2026-06-21T08:16:00.3000934Z           "evidence": [
2026-06-21T08:16:00.3001042Z             {
2026-06-21T08:16:00.3001165Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.3001267Z               "line": 755
2026-06-21T08:16:00.3001375Z             }
2026-06-21T08:16:00.3001476Z           ]
2026-06-21T08:16:00.3001578Z         },
2026-06-21T08:16:00.3001676Z         "impl": {
2026-06-21T08:16:00.3001794Z           "complete": false,
2026-06-21T08:16:00.3001909Z           "evidence": []
2026-06-21T08:16:00.3002016Z         },
2026-06-21T08:16:00.3002125Z         "int": {
2026-06-21T08:16:00.3002245Z           "complete": false,
2026-06-21T08:16:00.3002369Z           "evidence": []
2026-06-21T08:16:00.3002474Z         },
2026-06-21T08:16:00.3002584Z         "unit": {
2026-06-21T08:16:00.3002688Z           "complete": false,
2026-06-21T08:16:00.3002803Z           "evidence": []
2026-06-21T08:16:00.3002903Z         }
2026-06-21T08:16:00.3003003Z       }
2026-06-21T08:16:00.3003113Z     },
2026-06-21T08:16:00.3003213Z     {
2026-06-21T08:16:00.3003337Z       "id": "REQ-INSTALL-3",
2026-06-21T08:16:00.3003504Z       "title": "Idempotent + interactive-optional first run",
2026-06-21T08:16:00.3003628Z       "requiredStages": [
2026-06-21T08:16:00.3003737Z         "impl",
2026-06-21T08:16:00.3003848Z         "int"
2026-06-21T08:16:00.3003951Z       ],
2026-06-21T08:16:00.3004057Z       "stages": {
2026-06-21T08:16:00.3004168Z         "doc": {
2026-06-21T08:16:00.3004271Z           "complete": false,
2026-06-21T08:16:00.3004497Z           "evidence": []
2026-06-21T08:16:00.3004600Z         },
2026-06-21T08:16:00.3004704Z         "impl": {
2026-06-21T08:16:00.3004924Z           "complete": true,
2026-06-21T08:16:00.3005033Z           "evidence": [
2026-06-21T08:16:00.3005144Z             {
2026-06-21T08:16:00.3005276Z               "path": "installer/install.ps1",
2026-06-21T08:16:00.3005387Z               "line": 100
2026-06-21T08:16:00.3005491Z             },
2026-06-21T08:16:00.3005600Z             {
2026-06-21T08:16:00.3005735Z               "path": "installer/install.ps1",
2026-06-21T08:16:00.3005848Z               "line": 111
2026-06-21T08:16:00.3005948Z             },
2026-06-21T08:16:00.3006054Z             {
2026-06-21T08:16:00.3006187Z               "path": "installer/install.sh",
2026-06-21T08:16:00.3006292Z               "line": 79
2026-06-21T08:16:00.3006388Z             }
2026-06-21T08:16:00.3006497Z           ]
2026-06-21T08:16:00.3006597Z         },
2026-06-21T08:16:00.3006699Z         "int": {
2026-06-21T08:16:00.3006825Z           "complete": true,
2026-06-21T08:16:00.3006939Z           "evidence": [
2026-06-21T08:16:00.3007044Z             {
2026-06-21T08:16:00.3007199Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-21T08:16:00.3007314Z               "line": 167
2026-06-21T08:16:00.3007415Z             }
2026-06-21T08:16:00.3007514Z           ]
2026-06-21T08:16:00.3007614Z         },
2026-06-21T08:16:00.3007724Z         "unit": {
2026-06-21T08:16:00.3007838Z           "complete": false,
2026-06-21T08:16:00.3007944Z           "evidence": []
2026-06-21T08:16:00.3008048Z         }
2026-06-21T08:16:00.3008152Z       }
2026-06-21T08:16:00.3008264Z     },
2026-06-21T08:16:00.3008363Z     {
2026-06-21T08:16:00.3008481Z       "id": "REQ-INSTALL-4",
2026-06-21T08:16:00.3009218Z       "title": "Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over",
2026-06-21T08:16:00.3009345Z       "requiredStages": [
2026-06-21T08:16:00.3009460Z         "impl",
2026-06-21T08:16:00.3009571Z         "unit"
2026-06-21T08:16:00.3009679Z       ],
2026-06-21T08:16:00.3009778Z       "stages": {
2026-06-21T08:16:00.3009883Z         "doc": {
2026-06-21T08:16:00.3010001Z           "complete": false,
2026-06-21T08:16:00.3010109Z           "evidence": []
2026-06-21T08:16:00.3010210Z         },
2026-06-21T08:16:00.3010315Z         "impl": {
2026-06-21T08:16:00.3010438Z           "complete": true,
2026-06-21T08:16:00.3010545Z           "evidence": [
2026-06-21T08:16:00.3010649Z             {
2026-06-21T08:16:00.3010806Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T08:16:00.3010911Z               "line": 165
2026-06-21T08:16:00.3011024Z             },
2026-06-21T08:16:00.3011125Z             {
2026-06-21T08:16:00.3011278Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3011392Z               "line": 29
2026-06-21T08:16:00.3011503Z             },
2026-06-21T08:16:00.3011597Z             {
2026-06-21T08:16:00.3011750Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3011865Z               "line": 288
2026-06-21T08:16:00.3011964Z             },
2026-06-21T08:16:00.3012070Z             {
2026-06-21T08:16:00.3012217Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3012326Z               "line": 356
2026-06-21T08:16:00.3012435Z             },
2026-06-21T08:16:00.3012539Z             {
2026-06-21T08:16:00.3012690Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3012805Z               "line": 386
2026-06-21T08:16:00.3012915Z             },
2026-06-21T08:16:00.3013014Z             {
2026-06-21T08:16:00.3013163Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3013272Z               "line": 434
2026-06-21T08:16:00.3013377Z             },
2026-06-21T08:16:00.3013487Z             {
2026-06-21T08:16:00.3013712Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3013830Z               "line": 5396
2026-06-21T08:16:00.3014026Z             }
2026-06-21T08:16:00.3014121Z           ]
2026-06-21T08:16:00.3014226Z         },
2026-06-21T08:16:00.3014331Z         "int": {
2026-06-21T08:16:00.3014455Z           "complete": false,
2026-06-21T08:16:00.3014564Z           "evidence": []
2026-06-21T08:16:00.3014675Z         },
2026-06-21T08:16:00.3017571Z         "unit": {
2026-06-21T08:16:00.3017717Z           "complete": true,
2026-06-21T08:16:00.3017835Z           "evidence": [
2026-06-21T08:16:00.3017946Z             {
2026-06-21T08:16:00.3018117Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T08:16:00.3018227Z               "line": 375
2026-06-21T08:16:00.3018332Z             },
2026-06-21T08:16:00.3018431Z             {
2026-06-21T08:16:00.3018599Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3018704Z               "line": 808
2026-06-21T08:16:00.3018824Z             },
2026-06-21T08:16:00.3018928Z             {
2026-06-21T08:16:00.3019176Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3019285Z               "line": 849
2026-06-21T08:16:00.3019390Z             },
2026-06-21T08:16:00.3019482Z             {
2026-06-21T08:16:00.3019638Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3019743Z               "line": 869
2026-06-21T08:16:00.3019849Z             },
2026-06-21T08:16:00.3019952Z             {
2026-06-21T08:16:00.3020083Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3020188Z               "line": 8403
2026-06-21T08:16:00.3020295Z             }
2026-06-21T08:16:00.3020405Z           ]
2026-06-21T08:16:00.3020505Z         }
2026-06-21T08:16:00.3020603Z       }
2026-06-21T08:16:00.3020707Z     },
2026-06-21T08:16:00.3020809Z     {
2026-06-21T08:16:00.3020932Z       "id": "REQ-INSTALL-5",
2026-06-21T08:16:00.3021448Z       "title": "Non-interactive install path: the canonical one-liner doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration",
2026-06-21T08:16:00.3021585Z       "requiredStages": [
2026-06-21T08:16:00.3021690Z         "impl",
2026-06-21T08:16:00.3021795Z         "int"
2026-06-21T08:16:00.3021900Z       ],
2026-06-21T08:16:00.3022005Z       "stages": {
2026-06-21T08:16:00.3022115Z         "doc": {
2026-06-21T08:16:00.3022219Z           "complete": false,
2026-06-21T08:16:00.3022330Z           "evidence": []
2026-06-21T08:16:00.3022430Z         },
2026-06-21T08:16:00.3022539Z         "impl": {
2026-06-21T08:16:00.3022650Z           "complete": true,
2026-06-21T08:16:00.3022768Z           "evidence": [
2026-06-21T08:16:00.3022872Z             {
2026-06-21T08:16:00.3023000Z               "path": "installer/install.ps1",
2026-06-21T08:16:00.3023104Z               "line": 5
2026-06-21T08:16:00.3023212Z             },
2026-06-21T08:16:00.3023317Z             {
2026-06-21T08:16:00.3023451Z               "path": "installer/install.sh",
2026-06-21T08:16:00.3023569Z               "line": 6
2026-06-21T08:16:00.3023680Z             }
2026-06-21T08:16:00.3023785Z           ]
2026-06-21T08:16:00.3023884Z         },
2026-06-21T08:16:00.3023986Z         "int": {
2026-06-21T08:16:00.3024095Z           "complete": true,
2026-06-21T08:16:00.3024204Z           "evidence": [
2026-06-21T08:16:00.3024310Z             {
2026-06-21T08:16:00.3024462Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-21T08:16:00.3024572Z               "line": 22
2026-06-21T08:16:00.3024676Z             }
2026-06-21T08:16:00.3024781Z           ]
2026-06-21T08:16:00.3024892Z         },
2026-06-21T08:16:00.3025001Z         "unit": {
2026-06-21T08:16:00.3025124Z           "complete": false,
2026-06-21T08:16:00.3025245Z           "evidence": []
2026-06-21T08:16:00.3025334Z         }
2026-06-21T08:16:00.3025439Z       }
2026-06-21T08:16:00.3025536Z     },
2026-06-21T08:16:00.3025640Z     {
2026-06-21T08:16:00.3025887Z       "id": "REQ-INSTALL-6",
2026-06-21T08:16:00.3027131Z       "title": "Linux elevation install leg: install.sh symlinks the binary into a sudo-reachable path (/usr/local/bin; graceful print-the-one-liner when unelevated) so sudo spt resolves; first sudo spt detects elevation and prompts ONCE for the default user account — thereafter any elevated daemon launch runs daemon + state under that account, never root (KH 5.7 interplay verified) (M8 decision 8)",
2026-06-21T08:16:00.3027379Z       "requiredStages": [
2026-06-21T08:16:00.3027485Z         "impl",
2026-06-21T08:16:00.3027594Z         "unit"
2026-06-21T08:16:00.3027699Z       ],
2026-06-21T08:16:00.3027810Z       "stages": {
2026-06-21T08:16:00.3027917Z         "doc": {
2026-06-21T08:16:00.3028031Z           "complete": false,
2026-06-21T08:16:00.3028146Z           "evidence": []
2026-06-21T08:16:00.3028249Z         },
2026-06-21T08:16:00.3028357Z         "impl": {
2026-06-21T08:16:00.3028463Z           "complete": true,
2026-06-21T08:16:00.3028587Z           "evidence": [
2026-06-21T08:16:00.3028691Z             {
2026-06-21T08:16:00.3028845Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.3029044Z               "line": 61
2026-06-21T08:16:00.3029160Z             },
2026-06-21T08:16:00.3029264Z             {
2026-06-21T08:16:00.3029412Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.3029531Z               "line": 641
2026-06-21T08:16:00.3029635Z             },
2026-06-21T08:16:00.3029737Z             {
2026-06-21T08:16:00.3029893Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T08:16:00.3029994Z               "line": 191
2026-06-21T08:16:00.3030099Z             },
2026-06-21T08:16:00.3030203Z             {
2026-06-21T08:16:00.3030353Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T08:16:00.3030466Z               "line": 276
2026-06-21T08:16:00.3030566Z             },
2026-06-21T08:16:00.3030667Z             {
2026-06-21T08:16:00.3030799Z               "path": "crates/spt/src/main.rs",
2026-06-21T08:16:00.3030908Z               "line": 43
2026-06-21T08:16:00.3031017Z             },
2026-06-21T08:16:00.3031126Z             {
2026-06-21T08:16:00.3031258Z               "path": "installer/install.sh",
2026-06-21T08:16:00.3031359Z               "line": 104
2026-06-21T08:16:00.3031464Z             }
2026-06-21T08:16:00.3031563Z           ]
2026-06-21T08:16:00.3031669Z         },
2026-06-21T08:16:00.3031770Z         "int": {
2026-06-21T08:16:00.3031878Z           "complete": false,
2026-06-21T08:16:00.3031998Z           "evidence": []
2026-06-21T08:16:00.3032103Z         },
2026-06-21T08:16:00.3032217Z         "unit": {
2026-06-21T08:16:00.3032332Z           "complete": true,
2026-06-21T08:16:00.3032441Z           "evidence": [
2026-06-21T08:16:00.3032550Z             {
2026-06-21T08:16:00.3032703Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T08:16:00.3032812Z               "line": 894
2026-06-21T08:16:00.3032919Z             }
2026-06-21T08:16:00.3033014Z           ]
2026-06-21T08:16:00.3033118Z         }
2026-06-21T08:16:00.3033229Z       }
2026-06-21T08:16:00.3033328Z     },
2026-06-21T08:16:00.3033437Z     {
2026-06-21T08:16:00.3033551Z       "id": "REQ-INSTALL-7",
2026-06-21T08:16:00.3034697Z       "title": "Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-NetFirewallRule); the daemon self-detects blocked inbound and renders it as the no-connection state in subnet status + the coming-online banner (covers user-scope installs that skip the elevated leg — never a silent NO_SEED_HOLDER dead-end) (M8 root cause 3)",
2026-06-21T08:16:00.3034822Z       "requiredStages": [
2026-06-21T08:16:00.3034931Z         "impl"
2026-06-21T08:16:00.3035040Z       ],
2026-06-21T08:16:00.3035146Z       "stages": {
2026-06-21T08:16:00.3035251Z         "doc": {
2026-06-21T08:16:00.3035370Z           "complete": false,
2026-06-21T08:16:00.3035486Z           "evidence": []
2026-06-21T08:16:00.3035704Z         },
2026-06-21T08:16:00.3035810Z         "impl": {
2026-06-21T08:16:00.3035932Z           "complete": true,
2026-06-21T08:16:00.3036154Z           "evidence": [
2026-06-21T08:16:00.3036256Z             {
2026-06-21T08:16:00.3036394Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3036509Z               "line": 3920
2026-06-21T08:16:00.3036614Z             },
2026-06-21T08:16:00.3036709Z             {
2026-06-21T08:16:00.3036848Z               "path": "installer/install.ps1",
2026-06-21T08:16:00.3036966Z               "line": 157
2026-06-21T08:16:00.3037062Z             }
2026-06-21T08:16:00.3037167Z           ]
2026-06-21T08:16:00.3037276Z         },
2026-06-21T08:16:00.3037386Z         "int": {
2026-06-21T08:16:00.3037506Z           "complete": false,
2026-06-21T08:16:00.3037605Z           "evidence": []
2026-06-21T08:16:00.3037716Z         },
2026-06-21T08:16:00.3037825Z         "unit": {
2026-06-21T08:16:00.3037934Z           "complete": false,
2026-06-21T08:16:00.3038050Z           "evidence": []
2026-06-21T08:16:00.3038158Z         }
2026-06-21T08:16:00.3038259Z       }
2026-06-21T08:16:00.3038370Z     },
2026-06-21T08:16:00.3038473Z     {
2026-06-21T08:16:00.3038591Z       "id": "REQ-INSTALL-8",
2026-06-21T08:16:00.3039734Z       "title": "OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl enable-linger (linger rides the elevated install leg; daemon starts at boot pre-login, user universe per KH 5.7, systemctl --user managed); Windows scheduled task at-logon (interactive session, no stored credentials); a node is reachable after reboot without any manual spt invocation (M8 decision 17)",
2026-06-21T08:16:00.3039848Z       "requiredStages": [
2026-06-21T08:16:00.3039959Z         "impl"
2026-06-21T08:16:00.3040053Z       ],
2026-06-21T08:16:00.3040153Z       "stages": {
2026-06-21T08:16:00.3040258Z         "doc": {
2026-06-21T08:16:00.3040377Z           "complete": false,
2026-06-21T08:16:00.3040487Z           "evidence": []
2026-06-21T08:16:00.3040593Z         },
2026-06-21T08:16:00.3040706Z         "impl": {
2026-06-21T08:16:00.3040816Z           "complete": true,
2026-06-21T08:16:00.3040927Z           "evidence": [
2026-06-21T08:16:00.3041035Z             {
2026-06-21T08:16:00.3041159Z               "path": "installer/install.ps1",
2026-06-21T08:16:00.3041270Z               "line": 184
2026-06-21T08:16:00.3041378Z             },
2026-06-21T08:16:00.3041487Z             {
2026-06-21T08:16:00.3041620Z               "path": "installer/install.sh",
2026-06-21T08:16:00.3041728Z               "line": 121
2026-06-21T08:16:00.3041837Z             }
2026-06-21T08:16:00.3041944Z           ]
2026-06-21T08:16:00.3042048Z         },
2026-06-21T08:16:00.3042157Z         "int": {
2026-06-21T08:16:00.3042263Z           "complete": false,
2026-06-21T08:16:00.3042367Z           "evidence": []
2026-06-21T08:16:00.3042472Z         },
2026-06-21T08:16:00.3042582Z         "unit": {
2026-06-21T08:16:00.3042691Z           "complete": false,
2026-06-21T08:16:00.3042820Z           "evidence": []
2026-06-21T08:16:00.3042921Z         }
2026-06-21T08:16:00.3043011Z       }
2026-06-21T08:16:00.3043125Z     },
2026-06-21T08:16:00.3043226Z     {
2026-06-21T08:16:00.3043345Z       "id": "REQ-INSTALL-9",
2026-06-21T08:16:00.3044577Z       "title": "Adapter add from a GitHub release archive: `spt adapter add --release <user/repo> [--tag <tag>] [--asset <name>]` fetches a `.spt` tar asset over HTTPS+GitHub trust, extracts it to the durable adapters/_github home, and registers the root — ships built binaries source-free and versioned (the distribution path for an adapter whose dev repo is a monorepo subdir, where --github root-only clone does not fit)",
2026-06-21T08:16:00.3044704Z       "requiredStages": [
2026-06-21T08:16:00.3044815Z         "doc",
2026-06-21T08:16:00.3044919Z         "impl",
2026-06-21T08:16:00.3045019Z         "unit"
2026-06-21T08:16:00.3045116Z       ],
2026-06-21T08:16:00.3045230Z       "stages": {
2026-06-21T08:16:00.3045334Z         "doc": {
2026-06-21T08:16:00.3045563Z           "complete": true,
2026-06-21T08:16:00.3045677Z           "evidence": [
2026-06-21T08:16:00.3045883Z             {
2026-06-21T08:16:00.3046012Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.3046112Z               "line": 771
2026-06-21T08:16:00.3046216Z             }
2026-06-21T08:16:00.3046322Z           ]
2026-06-21T08:16:00.3046423Z         },
2026-06-21T08:16:00.3046536Z         "impl": {
2026-06-21T08:16:00.3046652Z           "complete": true,
2026-06-21T08:16:00.3046765Z           "evidence": [
2026-06-21T08:16:00.3046864Z             {
2026-06-21T08:16:00.3047002Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3047108Z               "line": 2535
2026-06-21T08:16:00.3047221Z             },
2026-06-21T08:16:00.3047326Z             {
2026-06-21T08:16:00.3047446Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3047564Z               "line": 2559
2026-06-21T08:16:00.3047671Z             }
2026-06-21T08:16:00.3047780Z           ]
2026-06-21T08:16:00.3047888Z         },
2026-06-21T08:16:00.3047990Z         "int": {
2026-06-21T08:16:00.3048113Z           "complete": false,
2026-06-21T08:16:00.3048217Z           "evidence": []
2026-06-21T08:16:00.3048324Z         },
2026-06-21T08:16:00.3048423Z         "unit": {
2026-06-21T08:16:00.3048542Z           "complete": true,
2026-06-21T08:16:00.3048657Z           "evidence": [
2026-06-21T08:16:00.3048766Z             {
2026-06-21T08:16:00.3048896Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3049081Z               "line": 7591
2026-06-21T08:16:00.3049189Z             },
2026-06-21T08:16:00.3049290Z             {
2026-06-21T08:16:00.3049412Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3049521Z               "line": 8433
2026-06-21T08:16:00.3049627Z             }
2026-06-21T08:16:00.3049731Z           ]
2026-06-21T08:16:00.3049826Z         }
2026-06-21T08:16:00.3049932Z       }
2026-06-21T08:16:00.3050036Z     },
2026-06-21T08:16:00.3050140Z     {
2026-06-21T08:16:00.3050251Z       "id": "REQ-KICK-1",
2026-06-21T08:16:00.3052717Z       "title": "Explicit, loud controller displacement: `spt rc kick <target>` / `--take` (Take intent) kicks the incumbent controller and becomes controller; the displaced controller receives a LOUD `Displaced{by}` notice and is FULLY DETACHED (not demoted to a viewer). A default attach to a controlled endpoint is NEVER a silent displace (it is the Control busy-refusal). An old (N-1) rc omits intent → Control, so it can drive a free endpoint but CANNOT `--take` — it can never silently steal, and gets a clean busy-refusal instead. Taking control rides the same access_check(endpoint, origin, Unsolicited) as a normal control attach (if you may drive, you may take — no elevated kick policy). The picker surfaces 'Kick <node> and attach' (Take) only on a controlled (blue ■) endpoint, via the existing attach dispatch (single-bringup-path: intent is a parameter).",
2026-06-21T08:16:00.3052847Z       "requiredStages": [
2026-06-21T08:16:00.3052965Z         "doc",
2026-06-21T08:16:00.3053061Z         "impl",
2026-06-21T08:16:00.3053171Z         "unit",
2026-06-21T08:16:00.3053289Z         "int"
2026-06-21T08:16:00.3053395Z       ],
2026-06-21T08:16:00.3053504Z       "stages": {
2026-06-21T08:16:00.3053609Z         "doc": {
2026-06-21T08:16:00.3053734Z           "complete": true,
2026-06-21T08:16:00.3053843Z           "evidence": [
2026-06-21T08:16:00.3053952Z             {
2026-06-21T08:16:00.3054067Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.3054181Z               "line": 342
2026-06-21T08:16:00.3054281Z             }
2026-06-21T08:16:00.3054382Z           ]
2026-06-21T08:16:00.3054486Z         },
2026-06-21T08:16:00.3054585Z         "impl": {
2026-06-21T08:16:00.3054709Z           "complete": true,
2026-06-21T08:16:00.3054822Z           "evidence": [
2026-06-21T08:16:00.3054931Z             {
2026-06-21T08:16:00.3055079Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-21T08:16:00.3055193Z               "line": 41
2026-06-21T08:16:00.3055408Z             },
2026-06-21T08:16:00.3055508Z             {
2026-06-21T08:16:00.3055737Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3055846Z               "line": 701
2026-06-21T08:16:00.3055952Z             }
2026-06-21T08:16:00.3056057Z           ]
2026-06-21T08:16:00.3056165Z         },
2026-06-21T08:16:00.3056267Z         "int": {
2026-06-21T08:16:00.3056381Z           "complete": true,
2026-06-21T08:16:00.3056499Z           "evidence": [
2026-06-21T08:16:00.3056596Z             {
2026-06-21T08:16:00.3056747Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T08:16:00.3056848Z               "line": 913
2026-06-21T08:16:00.3056954Z             }
2026-06-21T08:16:00.3057052Z           ]
2026-06-21T08:16:00.3057163Z         },
2026-06-21T08:16:00.3057274Z         "unit": {
2026-06-21T08:16:00.3057377Z           "complete": true,
2026-06-21T08:16:00.3057495Z           "evidence": [
2026-06-21T08:16:00.3057596Z             {
2026-06-21T08:16:00.3057757Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-21T08:16:00.3057863Z               "line": 205
2026-06-21T08:16:00.3057972Z             }
2026-06-21T08:16:00.3058077Z           ]
2026-06-21T08:16:00.3058168Z         }
2026-06-21T08:16:00.3058264Z       }
2026-06-21T08:16:00.3058363Z     },
2026-06-21T08:16:00.3058468Z     {
2026-06-21T08:16:00.3058588Z       "id": "REQ-MANIFEST-1",
2026-06-21T08:16:00.3058802Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-21T08:16:00.3058921Z       "requiredStages": [
2026-06-21T08:16:00.3059112Z         "doc",
2026-06-21T08:16:00.3059218Z         "impl",
2026-06-21T08:16:00.3059321Z         "unit"
2026-06-21T08:16:00.3059426Z       ],
2026-06-21T08:16:00.3059537Z       "stages": {
2026-06-21T08:16:00.3059641Z         "doc": {
2026-06-21T08:16:00.3059764Z           "complete": true,
2026-06-21T08:16:00.3059873Z           "evidence": [
2026-06-21T08:16:00.3059976Z             {
2026-06-21T08:16:00.3060110Z               "path": "docs/MANIFEST.md",
2026-06-21T08:16:00.3060216Z               "line": 19
2026-06-21T08:16:00.3060319Z             }
2026-06-21T08:16:00.3060420Z           ]
2026-06-21T08:16:00.3060525Z         },
2026-06-21T08:16:00.3060624Z         "impl": {
2026-06-21T08:16:00.3060744Z           "complete": true,
2026-06-21T08:16:00.3060849Z           "evidence": [
2026-06-21T08:16:00.3060953Z             {
2026-06-21T08:16:00.3061108Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3061212Z               "line": 18
2026-06-21T08:16:00.3061311Z             }
2026-06-21T08:16:00.3061417Z           ]
2026-06-21T08:16:00.3061512Z         },
2026-06-21T08:16:00.3061617Z         "int": {
2026-06-21T08:16:00.3061737Z           "complete": false,
2026-06-21T08:16:00.3061855Z           "evidence": []
2026-06-21T08:16:00.3061960Z         },
2026-06-21T08:16:00.3062062Z         "unit": {
2026-06-21T08:16:00.3062174Z           "complete": true,
2026-06-21T08:16:00.3062299Z           "evidence": [
2026-06-21T08:16:00.3062404Z             {
2026-06-21T08:16:00.3062560Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3062679Z               "line": 1029
2026-06-21T08:16:00.3062782Z             },
2026-06-21T08:16:00.3062891Z             {
2026-06-21T08:16:00.3063039Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3063153Z               "line": 1325
2026-06-21T08:16:00.3063253Z             },
2026-06-21T08:16:00.3063364Z             {
2026-06-21T08:16:00.3063511Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3063621Z               "line": 1337
2026-06-21T08:16:00.3063726Z             },
2026-06-21T08:16:00.3063830Z             {
2026-06-21T08:16:00.3063979Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3064088Z               "line": 1348
2026-06-21T08:16:00.3064197Z             },
2026-06-21T08:16:00.3064303Z             {
2026-06-21T08:16:00.3064556Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3064675Z               "line": 1365
2026-06-21T08:16:00.3064876Z             },
2026-06-21T08:16:00.3064985Z             {
2026-06-21T08:16:00.3065136Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3065260Z               "line": 1379
2026-06-21T08:16:00.3065368Z             },
2026-06-21T08:16:00.3065472Z             {
2026-06-21T08:16:00.3065621Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3065781Z               "line": 1495
2026-06-21T08:16:00.3065892Z             },
2026-06-21T08:16:00.3065997Z             {
2026-06-21T08:16:00.3066154Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3066264Z               "line": 1510
2026-06-21T08:16:00.3066369Z             },
2026-06-21T08:16:00.3066478Z             {
2026-06-21T08:16:00.3066626Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3066774Z               "line": 1621
2026-06-21T08:16:00.3066903Z             },
2026-06-21T08:16:00.3067003Z             {
2026-06-21T08:16:00.3067152Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3067265Z               "line": 1632
2026-06-21T08:16:00.3067374Z             }
2026-06-21T08:16:00.3067476Z           ]
2026-06-21T08:16:00.3067589Z         }
2026-06-21T08:16:00.3067689Z       }
2026-06-21T08:16:00.3067786Z     },
2026-06-21T08:16:00.3067895Z     {
2026-06-21T08:16:00.3068013Z       "id": "REQ-MANIFEST-2",
2026-06-21T08:16:00.3068552Z       "title": "Adapter profiles — sparse leaf-replace overlays (shipped + local), composite <adapter>:<profile> addressing, shadow-refusal, tighten-only consent floors",
2026-06-21T08:16:00.3068670Z       "requiredStages": [
2026-06-21T08:16:00.3068767Z         "doc",
2026-06-21T08:16:00.3068928Z         "impl",
2026-06-21T08:16:00.3069129Z         "unit"
2026-06-21T08:16:00.3069248Z       ],
2026-06-21T08:16:00.3069352Z       "stages": {
2026-06-21T08:16:00.3069482Z         "doc": {
2026-06-21T08:16:00.3069595Z           "complete": true,
2026-06-21T08:16:00.3069725Z           "evidence": [
2026-06-21T08:16:00.3069838Z             {
2026-06-21T08:16:00.3069958Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.3070074Z               "line": 75
2026-06-21T08:16:00.3070172Z             }
2026-06-21T08:16:00.3070272Z           ]
2026-06-21T08:16:00.3070377Z         },
2026-06-21T08:16:00.3070494Z         "impl": {
2026-06-21T08:16:00.3070621Z           "complete": true,
2026-06-21T08:16:00.3070732Z           "evidence": [
2026-06-21T08:16:00.3070832Z             {
2026-06-21T08:16:00.3070985Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3071104Z               "line": 82
2026-06-21T08:16:00.3071251Z             },
2026-06-21T08:16:00.3071343Z             {
2026-06-21T08:16:00.3071499Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T08:16:00.3071619Z               "line": 15
2026-06-21T08:16:00.3071724Z             },
2026-06-21T08:16:00.3071833Z             {
2026-06-21T08:16:00.3071982Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T08:16:00.3072096Z               "line": 65
2026-06-21T08:16:00.3072205Z             },
2026-06-21T08:16:00.3072307Z             {
2026-06-21T08:16:00.3072463Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T08:16:00.3072564Z               "line": 83
2026-06-21T08:16:00.3072696Z             },
2026-06-21T08:16:00.3072801Z             {
2026-06-21T08:16:00.3072951Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T08:16:00.3073068Z               "line": 183
2026-06-21T08:16:00.3073172Z             },
2026-06-21T08:16:00.3073277Z             {
2026-06-21T08:16:00.3073423Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3073542Z               "line": 527
2026-06-21T08:16:00.3073643Z             },
2026-06-21T08:16:00.3073747Z             {
2026-06-21T08:16:00.3074085Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3074201Z               "line": 553
2026-06-21T08:16:00.3074395Z             },
2026-06-21T08:16:00.3074496Z             {
2026-06-21T08:16:00.3074648Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3074757Z               "line": 671
2026-06-21T08:16:00.3074864Z             },
2026-06-21T08:16:00.3074963Z             {
2026-06-21T08:16:00.3075111Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3075216Z               "line": 696
2026-06-21T08:16:00.3075320Z             },
2026-06-21T08:16:00.3075426Z             {
2026-06-21T08:16:00.3075574Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3075672Z               "line": 719
2026-06-21T08:16:00.3075786Z             },
2026-06-21T08:16:00.3075891Z             {
2026-06-21T08:16:00.3076036Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3076156Z               "line": 734
2026-06-21T08:16:00.3076271Z             },
2026-06-21T08:16:00.3076375Z             {
2026-06-21T08:16:00.3076505Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3076619Z               "line": 5567
2026-06-21T08:16:00.3076724Z             },
2026-06-21T08:16:00.3076834Z             {
2026-06-21T08:16:00.3076962Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3077068Z               "line": 5581
2026-06-21T08:16:00.3077182Z             },
2026-06-21T08:16:00.3077281Z             {
2026-06-21T08:16:00.3077411Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3077520Z               "line": 5615
2026-06-21T08:16:00.3077624Z             }
2026-06-21T08:16:00.3077726Z           ]
2026-06-21T08:16:00.3077830Z         },
2026-06-21T08:16:00.3077939Z         "int": {
2026-06-21T08:16:00.3078060Z           "complete": false,
2026-06-21T08:16:00.3078173Z           "evidence": []
2026-06-21T08:16:00.3078273Z         },
2026-06-21T08:16:00.3078398Z         "unit": {
2026-06-21T08:16:00.3078511Z           "complete": true,
2026-06-21T08:16:00.3078630Z           "evidence": [
2026-06-21T08:16:00.3078741Z             {
2026-06-21T08:16:00.3078892Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T08:16:00.3079093Z               "line": 921
2026-06-21T08:16:00.3079197Z             },
2026-06-21T08:16:00.3079303Z             {
2026-06-21T08:16:00.3079446Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T08:16:00.3079564Z               "line": 211
2026-06-21T08:16:00.3079675Z             },
2026-06-21T08:16:00.3079774Z             {
2026-06-21T08:16:00.3079922Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T08:16:00.3080038Z               "line": 272
2026-06-21T08:16:00.3080137Z             },
2026-06-21T08:16:00.3080237Z             {
2026-06-21T08:16:00.3080390Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T08:16:00.3080499Z               "line": 313
2026-06-21T08:16:00.3080615Z             },
2026-06-21T08:16:00.3080709Z             {
2026-06-21T08:16:00.3080851Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T08:16:00.3080970Z               "line": 325
2026-06-21T08:16:00.3081073Z             },
2026-06-21T08:16:00.3081172Z             {
2026-06-21T08:16:00.3081326Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T08:16:00.3081435Z               "line": 336
2026-06-21T08:16:00.3081535Z             },
2026-06-21T08:16:00.3081631Z             {
2026-06-21T08:16:00.3081778Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T08:16:00.3081964Z               "line": 345
2026-06-21T08:16:00.3082069Z             },
2026-06-21T08:16:00.3082175Z             {
2026-06-21T08:16:00.3082322Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T08:16:00.3082441Z               "line": 361
2026-06-21T08:16:00.3082533Z             },
2026-06-21T08:16:00.3082641Z             {
2026-06-21T08:16:00.3082891Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T08:16:00.3083004Z               "line": 444
2026-06-21T08:16:00.3083196Z             },
2026-06-21T08:16:00.3083299Z             {
2026-06-21T08:16:00.3083449Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3083553Z               "line": 958
2026-06-21T08:16:00.3083661Z             },
2026-06-21T08:16:00.3083766Z             {
2026-06-21T08:16:00.3083898Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3084016Z               "line": 982
2026-06-21T08:16:00.3084121Z             },
2026-06-21T08:16:00.3084227Z             {
2026-06-21T08:16:00.3084373Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3084484Z               "line": 1008
2026-06-21T08:16:00.3084584Z             },
2026-06-21T08:16:00.3084679Z             {
2026-06-21T08:16:00.3084832Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3084945Z               "line": 1027
2026-06-21T08:16:00.3085051Z             },
2026-06-21T08:16:00.3085156Z             {
2026-06-21T08:16:00.3085304Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3085415Z               "line": 1058
2026-06-21T08:16:00.3085513Z             },
2026-06-21T08:16:00.3085618Z             {
2026-06-21T08:16:00.3085758Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T08:16:00.3085875Z               "line": 309
2026-06-21T08:16:00.3085981Z             },
2026-06-21T08:16:00.3086091Z             {
2026-06-21T08:16:00.3086233Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T08:16:00.3086337Z               "line": 606
2026-06-21T08:16:00.3086446Z             },
2026-06-21T08:16:00.3086550Z             {
2026-06-21T08:16:00.3086678Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3086798Z               "line": 8610
2026-06-21T08:16:00.3086902Z             },
2026-06-21T08:16:00.3087008Z             {
2026-06-21T08:16:00.3087141Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3087255Z               "line": 9558
2026-06-21T08:16:00.3087356Z             }
2026-06-21T08:16:00.3087460Z           ]
2026-06-21T08:16:00.3087564Z         }
2026-06-21T08:16:00.3087666Z       }
2026-06-21T08:16:00.3087780Z     },
2026-06-21T08:16:00.3087879Z     {
2026-06-21T08:16:00.3088009Z       "id": "REQ-MANIFEST-3",
2026-06-21T08:16:00.3088663Z       "title": "Adapter strings — [strings] KV tree, dot-path get-string resolving through the profile leaf-replace overlay, set-string editing a local profile's [strings] only; data-only (nothing executes a string)",
2026-06-21T08:16:00.3088791Z       "requiredStages": [
2026-06-21T08:16:00.3088897Z         "doc",
2026-06-21T08:16:00.3089081Z         "impl",
2026-06-21T08:16:00.3089180Z         "unit"
2026-06-21T08:16:00.3089281Z       ],
2026-06-21T08:16:00.3089395Z       "stages": {
2026-06-21T08:16:00.3089495Z         "doc": {
2026-06-21T08:16:00.3089620Z           "complete": true,
2026-06-21T08:16:00.3089748Z           "evidence": [
2026-06-21T08:16:00.3089853Z             {
2026-06-21T08:16:00.3089991Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.3090096Z               "line": 81
2026-06-21T08:16:00.3090207Z             }
2026-06-21T08:16:00.3090302Z           ]
2026-06-21T08:16:00.3090406Z         },
2026-06-21T08:16:00.3090522Z         "impl": {
2026-06-21T08:16:00.3090621Z           "complete": true,
2026-06-21T08:16:00.3090739Z           "evidence": [
2026-06-21T08:16:00.3090841Z             {
2026-06-21T08:16:00.3090992Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3091098Z               "line": 92
2026-06-21T08:16:00.3091204Z             },
2026-06-21T08:16:00.3091307Z             {
2026-06-21T08:16:00.3091464Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T08:16:00.3091582Z               "line": 101
2026-06-21T08:16:00.3091685Z             },
2026-06-21T08:16:00.3091805Z             {
2026-06-21T08:16:00.3092062Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T08:16:00.3092178Z               "line": 132
2026-06-21T08:16:00.3092386Z             },
2026-06-21T08:16:00.3092487Z             {
2026-06-21T08:16:00.3092643Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3092754Z               "line": 577
2026-06-21T08:16:00.3092858Z             },
2026-06-21T08:16:00.3092967Z             {
2026-06-21T08:16:00.3093112Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3093226Z               "line": 633
2026-06-21T08:16:00.3093330Z             },
2026-06-21T08:16:00.3093436Z             {
2026-06-21T08:16:00.3093569Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3093689Z               "line": 5628
2026-06-21T08:16:00.3093799Z             },
2026-06-21T08:16:00.3093912Z             {
2026-06-21T08:16:00.3094047Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3094151Z               "line": 5654
2026-06-21T08:16:00.3094264Z             }
2026-06-21T08:16:00.3094364Z           ]
2026-06-21T08:16:00.3094473Z         },
2026-06-21T08:16:00.3094586Z         "int": {
2026-06-21T08:16:00.3094705Z           "complete": false,
2026-06-21T08:16:00.3094811Z           "evidence": []
2026-06-21T08:16:00.3094919Z         },
2026-06-21T08:16:00.3095026Z         "unit": {
2026-06-21T08:16:00.3095140Z           "complete": true,
2026-06-21T08:16:00.3095253Z           "evidence": [
2026-06-21T08:16:00.3095355Z             {
2026-06-21T08:16:00.3095510Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T08:16:00.3095626Z               "line": 371
2026-06-21T08:16:00.3095730Z             },
2026-06-21T08:16:00.3095844Z             {
2026-06-21T08:16:00.3095989Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T08:16:00.3096111Z               "line": 429
2026-06-21T08:16:00.3096216Z             },
2026-06-21T08:16:00.3096328Z             {
2026-06-21T08:16:00.3096484Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3096604Z               "line": 1082
2026-06-21T08:16:00.3096717Z             },
2026-06-21T08:16:00.3096821Z             {
2026-06-21T08:16:00.3096945Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3097057Z               "line": 8703
2026-06-21T08:16:00.3097166Z             }
2026-06-21T08:16:00.3097272Z           ]
2026-06-21T08:16:00.3097377Z         }
2026-06-21T08:16:00.3097490Z       }
2026-06-21T08:16:00.3097592Z     },
2026-06-21T08:16:00.3097706Z     {
2026-06-21T08:16:00.3097829Z       "id": "REQ-MANIFEST-4",
2026-06-21T08:16:00.3098551Z       "title": "Keyword hints — [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one matched hint per message, once per session (seen-set), declaration-order first match; profiles overlay [[hints]] by leaf-replace",
2026-06-21T08:16:00.3098683Z       "requiredStages": [
2026-06-21T08:16:00.3098788Z         "doc",
2026-06-21T08:16:00.3098898Z         "impl",
2026-06-21T08:16:00.3099098Z         "unit"
2026-06-21T08:16:00.3099199Z       ],
2026-06-21T08:16:00.3099317Z       "stages": {
2026-06-21T08:16:00.3099433Z         "doc": {
2026-06-21T08:16:00.3099556Z           "complete": true,
2026-06-21T08:16:00.3099674Z           "evidence": [
2026-06-21T08:16:00.3099783Z             {
2026-06-21T08:16:00.3099904Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.3100026Z               "line": 88
2026-06-21T08:16:00.3100137Z             }
2026-06-21T08:16:00.3100237Z           ]
2026-06-21T08:16:00.3100346Z         },
2026-06-21T08:16:00.3100452Z         "impl": {
2026-06-21T08:16:00.3100581Z           "complete": true,
2026-06-21T08:16:00.3100684Z           "evidence": [
2026-06-21T08:16:00.3100795Z             {
2026-06-21T08:16:00.3100956Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3101067Z               "line": 100
2026-06-21T08:16:00.3101181Z             },
2026-06-21T08:16:00.3101281Z             {
2026-06-21T08:16:00.3101566Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3101672Z               "line": 183
2026-06-21T08:16:00.3101872Z             },
2026-06-21T08:16:00.3101981Z             {
2026-06-21T08:16:00.3105590Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.3105723Z               "line": 83
2026-06-21T08:16:00.3105832Z             },
2026-06-21T08:16:00.3105939Z             {
2026-06-21T08:16:00.3106089Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.3106210Z               "line": 629
2026-06-21T08:16:00.3106319Z             },
2026-06-21T08:16:00.3106428Z             {
2026-06-21T08:16:00.3106577Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.3106691Z               "line": 654
2026-06-21T08:16:00.3106796Z             }
2026-06-21T08:16:00.3106907Z           ]
2026-06-21T08:16:00.3107015Z         },
2026-06-21T08:16:00.3107116Z         "int": {
2026-06-21T08:16:00.3107245Z           "complete": false,
2026-06-21T08:16:00.3107372Z           "evidence": []
2026-06-21T08:16:00.3107476Z         },
2026-06-21T08:16:00.3107590Z         "unit": {
2026-06-21T08:16:00.3107708Z           "complete": true,
2026-06-21T08:16:00.3107823Z           "evidence": [
2026-06-21T08:16:00.3107919Z             {
2026-06-21T08:16:00.3108075Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3108185Z               "line": 1445
2026-06-21T08:16:00.3108289Z             },
2026-06-21T08:16:00.3108394Z             {
2026-06-21T08:16:00.3108552Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3108656Z               "line": 1478
2026-06-21T08:16:00.3108758Z             },
2026-06-21T08:16:00.3108866Z             {
2026-06-21T08:16:00.3109092Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.3109205Z               "line": 988
2026-06-21T08:16:00.3109305Z             }
2026-06-21T08:16:00.3109411Z           ]
2026-06-21T08:16:00.3109515Z         }
2026-06-21T08:16:00.3109620Z       }
2026-06-21T08:16:00.3109726Z     },
2026-06-21T08:16:00.3109834Z     {
2026-06-21T08:16:00.3109964Z       "id": "REQ-MANIFEST-5",
2026-06-21T08:16:00.3112862Z       "title": "File-backed adapter [strings] (M12-W3-T3.1): a [strings] dot-path value MAY be an inline-table FILE POINTER `key = { file = \"rel/path\" }` resolved to the file's contents at get-string time, keeping large bodies (skill-instructions, hint text) out of the manifest. A value-position table with a `file` key IS the pointer form (reserved — cannot double as data). Per-adapter aux storage `adapters/<adapter>/strings/`; pointers resolve relative to it with CONTAINMENT (reject `..`/absolute escaping the dir). UPDATE-SAFETY: a LOCAL profile's file-pointers resolve relative to the user-owned local-profile dir (NOT adapter-shipped strings/, which adapter updates overwrite), or the local profile inlines. Validate-at-register (fail-fast on a bad/escaping/missing pointer) + LAZY read at get-string (live file edits reflect, no re-register) + skip-diagnostics on missing-at-read (no hard-crash, mirrors [digest]). Rides the same leaf-replace profile overlay as the rest of [strings].",
2026-06-21T08:16:00.3113021Z       "requiredStages": [
2026-06-21T08:16:00.3113134Z         "doc",
2026-06-21T08:16:00.3113240Z         "impl",
2026-06-21T08:16:00.3113349Z         "unit"
2026-06-21T08:16:00.3113454Z       ],
2026-06-21T08:16:00.3113560Z       "stages": {
2026-06-21T08:16:00.3113669Z         "doc": {
2026-06-21T08:16:00.3113773Z           "complete": true,
2026-06-21T08:16:00.3113884Z           "evidence": [
2026-06-21T08:16:00.3113993Z             {
2026-06-21T08:16:00.3114116Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.3114223Z               "line": 83
2026-06-21T08:16:00.3114331Z             }
2026-06-21T08:16:00.3114436Z           ]
2026-06-21T08:16:00.3114528Z         },
2026-06-21T08:16:00.3114646Z         "impl": {
2026-06-21T08:16:00.3114765Z           "complete": true,
2026-06-21T08:16:00.3115008Z           "evidence": [
2026-06-21T08:16:00.3115109Z             {
2026-06-21T08:16:00.3115262Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T08:16:00.3115480Z               "line": 120
2026-06-21T08:16:00.3115588Z             }
2026-06-21T08:16:00.3115696Z           ]
2026-06-21T08:16:00.3115802Z         },
2026-06-21T08:16:00.3115907Z         "int": {
2026-06-21T08:16:00.3116025Z           "complete": false,
2026-06-21T08:16:00.3116141Z           "evidence": []
2026-06-21T08:16:00.3116251Z         },
2026-06-21T08:16:00.3116354Z         "unit": {
2026-06-21T08:16:00.3116475Z           "complete": true,
2026-06-21T08:16:00.3116594Z           "evidence": [
2026-06-21T08:16:00.3116703Z             {
2026-06-21T08:16:00.3116856Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T08:16:00.3116974Z               "line": 404
2026-06-21T08:16:00.3117080Z             },
2026-06-21T08:16:00.3117175Z             {
2026-06-21T08:16:00.3117332Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3117462Z               "line": 1155
2026-06-21T08:16:00.3117570Z             },
2026-06-21T08:16:00.3117686Z             {
2026-06-21T08:16:00.3117833Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3117942Z               "line": 1184
2026-06-21T08:16:00.3118046Z             },
2026-06-21T08:16:00.3118155Z             {
2026-06-21T08:16:00.3118305Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3118421Z               "line": 1224
2026-06-21T08:16:00.3118525Z             },
2026-06-21T08:16:00.3118620Z             {
2026-06-21T08:16:00.3118764Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3118878Z               "line": 1239
2026-06-21T08:16:00.3119051Z             }
2026-06-21T08:16:00.3119155Z           ]
2026-06-21T08:16:00.3119260Z         }
2026-06-21T08:16:00.3119366Z       }
2026-06-21T08:16:00.3119470Z     },
2026-06-21T08:16:00.3119575Z     {
2026-06-21T08:16:00.3119704Z       "id": "REQ-MANIFEST-6",
2026-06-21T08:16:00.3121858Z       "title": "Cross-adapter fallback target addressing (M12-W3-T3.2): a cross-adapter fallback target is addressed as `<adapter>:<profile>` (not just a bare adapter_name), resolved through the one composite-addressing resolver (registry::resolve_option) at every adapter-option read site so a fallback may select a shipped/local profile (e.g. a `ccs` profile). CONTEXT.md §cross-adapter-fallback reconciled (\"ccs is a profile; cross-adapter fallback may target <adapter>:<profile>\"). Contract-only this milestone: the node-wide fallback SETTING + its rate-limit invocation are deferred to the consuming milestone (the runtime path does not exist yet); this REQ guarantees the ADDRESSING resolves.",
2026-06-21T08:16:00.3121991Z       "requiredStages": [
2026-06-21T08:16:00.3122100Z         "doc",
2026-06-21T08:16:00.3122197Z         "unit"
2026-06-21T08:16:00.3122301Z       ],
2026-06-21T08:16:00.3122411Z       "stages": {
2026-06-21T08:16:00.3122531Z         "doc": {
2026-06-21T08:16:00.3122649Z           "complete": true,
2026-06-21T08:16:00.3122744Z           "evidence": [
2026-06-21T08:16:00.3122870Z             {
2026-06-21T08:16:00.3122992Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.3123101Z               "line": 141
2026-06-21T08:16:00.3123201Z             }
2026-06-21T08:16:00.3123304Z           ]
2026-06-21T08:16:00.3123413Z         },
2026-06-21T08:16:00.3123523Z         "impl": {
2026-06-21T08:16:00.3123647Z           "complete": false,
2026-06-21T08:16:00.3123757Z           "evidence": []
2026-06-21T08:16:00.3123862Z         },
2026-06-21T08:16:00.3123967Z         "int": {
2026-06-21T08:16:00.3124086Z           "complete": false,
2026-06-21T08:16:00.3124191Z           "evidence": []
2026-06-21T08:16:00.3124286Z         },
2026-06-21T08:16:00.3124396Z         "unit": {
2026-06-21T08:16:00.3124510Z           "complete": true,
2026-06-21T08:16:00.3124629Z           "evidence": [
2026-06-21T08:16:00.3124730Z             {
2026-06-21T08:16:00.3124996Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.3125112Z               "line": 1261
2026-06-21T08:16:00.3125311Z             }
2026-06-21T08:16:00.3125418Z           ]
2026-06-21T08:16:00.3125516Z         }
2026-06-21T08:16:00.3125612Z       }
2026-06-21T08:16:00.3125713Z     },
2026-06-21T08:16:00.3125817Z     {
2026-06-21T08:16:00.3125939Z       "id": "REQ-MANIFEST-7",
2026-06-21T08:16:00.3129010Z       "title": "Adapter-declared shortcut basename (M12-W2 follow-on): an optional `[adapter] shortcut_basename` manifest field names the basename the `spt endpoint run` picker bakes into the generated `<basename>-<id>` launcher shortcut (REQ-RUN-SHORTCUT). Absent ⇒ the harness-agnostic default `spt` (→ `spt-<id>`); an adapter sets it to brand its shortcuts (claude-spt → `cc` → `cc-<id>`), so the Claude-Code-ness lives in the PUBLISHED adapter manifest, never hardcoded in spt-core. The picker reads it from the RESOLVED manifest of the selected adapter (registry::resolve_option), falling back to `spt` when absent/empty/unresolvable. Additive + N-1-safe (serde-default Option, omitted from serialization when absent; old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). Documented in docs/MANIFEST.md `[adapter]` section + the claude-spt worked example — the adapter-author contract perri builds spt-claude-code against.",
2026-06-21T08:16:00.3129176Z       "requiredStages": [
2026-06-21T08:16:00.3129287Z         "doc",
2026-06-21T08:16:00.3129387Z         "impl",
2026-06-21T08:16:00.3129496Z         "unit"
2026-06-21T08:16:00.3129597Z       ],
2026-06-21T08:16:00.3129706Z       "stages": {
2026-06-21T08:16:00.3129815Z         "doc": {
2026-06-21T08:16:00.3129931Z           "complete": true,
2026-06-21T08:16:00.3130040Z           "evidence": [
2026-06-21T08:16:00.3130144Z             {
2026-06-21T08:16:00.3130274Z               "path": "docs/MANIFEST.md",
2026-06-21T08:16:00.3130387Z               "line": 35
2026-06-21T08:16:00.3130508Z             }
2026-06-21T08:16:00.3130612Z           ]
2026-06-21T08:16:00.3130712Z         },
2026-06-21T08:16:00.3130841Z         "impl": {
2026-06-21T08:16:00.3130950Z           "complete": true,
2026-06-21T08:16:00.3131060Z           "evidence": [
2026-06-21T08:16:00.3131161Z             {
2026-06-21T08:16:00.3131298Z               "path": "crates/spt/src/picker/data.rs",
2026-06-21T08:16:00.3131416Z               "line": 54
2026-06-21T08:16:00.3131522Z             }
2026-06-21T08:16:00.3131622Z           ]
2026-06-21T08:16:00.3131726Z         },
2026-06-21T08:16:00.3131832Z         "int": {
2026-06-21T08:16:00.3131946Z           "complete": false,
2026-06-21T08:16:00.3132055Z           "evidence": []
2026-06-21T08:16:00.3132166Z         },
2026-06-21T08:16:00.3132261Z         "unit": {
2026-06-21T08:16:00.3132379Z           "complete": true,
2026-06-21T08:16:00.3132481Z           "evidence": [
2026-06-21T08:16:00.3132590Z             {
2026-06-21T08:16:00.3132743Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3132856Z               "line": 1638
2026-06-21T08:16:00.3132966Z             }
2026-06-21T08:16:00.3133072Z           ]
2026-06-21T08:16:00.3133185Z         }
2026-06-21T08:16:00.3133285Z       }
2026-06-21T08:16:00.3133391Z     },
2026-06-21T08:16:00.3133491Z     {
2026-06-21T08:16:00.3133600Z       "id": "REQ-MANIFEST-8",
2026-06-21T08:16:00.3135752Z       "title": "[adapter] host_binaries declares the harness executable basenames a kind=\"harness\" adapter hosts agents inside (e.g. host_binaries = [\"claude\"]); bind-time pid→exe-basename match (case-insensitive, .exe-stripped) over the seed's parent_pid selects the candidate adapter set; zero matches → a friendly error naming the binary + the --adapter escape hatch. Additive + N-1-safe: optional Vec<String>, #[serde(default, skip_serializing_if = \"Vec::is_empty\")] (omitted-serialized like shortcut_basename, old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). The match-key for ADR-0021 adapter-agnostic bind-time resolution. (v0.9.0)",
2026-06-21T08:16:00.3136095Z       "requiredStages": [
2026-06-21T08:16:00.3136205Z         "doc",
2026-06-21T08:16:00.3136311Z         "impl",
2026-06-21T08:16:00.3136419Z         "unit",
2026-06-21T08:16:00.3136528Z         "int"
2026-06-21T08:16:00.3136633Z       ],
2026-06-21T08:16:00.3136736Z       "stages": {
2026-06-21T08:16:00.3136840Z         "doc": {
2026-06-21T08:16:00.3136955Z           "complete": true,
2026-06-21T08:16:00.3137070Z           "evidence": [
2026-06-21T08:16:00.3137169Z             {
2026-06-21T08:16:00.3137294Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.3137403Z               "line": 184
2026-06-21T08:16:00.3137513Z             },
2026-06-21T08:16:00.3137614Z             {
2026-06-21T08:16:00.3137737Z               "path": "docs/MANIFEST.md",
2026-06-21T08:16:00.3137842Z               "line": 46
2026-06-21T08:16:00.3137943Z             }
2026-06-21T08:16:00.3138061Z           ]
2026-06-21T08:16:00.3138162Z         },
2026-06-21T08:16:00.3138262Z         "impl": {
2026-06-21T08:16:00.3138376Z           "complete": true,
2026-06-21T08:16:00.3138486Z           "evidence": [
2026-06-21T08:16:00.3138587Z             {
2026-06-21T08:16:00.3138734Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T08:16:00.3138845Z               "line": 222
2026-06-21T08:16:00.3139038Z             },
2026-06-21T08:16:00.3139128Z             {
2026-06-21T08:16:00.3139275Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T08:16:00.3139388Z               "line": 306
2026-06-21T08:16:00.3139493Z             }
2026-06-21T08:16:00.3139637Z           ]
2026-06-21T08:16:00.3139741Z         },
2026-06-21T08:16:00.3139857Z         "int": {
2026-06-21T08:16:00.3139975Z           "complete": true,
2026-06-21T08:16:00.3140075Z           "evidence": [
2026-06-21T08:16:00.3140180Z             {
2026-06-21T08:16:00.3140327Z               "path": "crates/spt/tests/live_resolve_e2e.rs",
2026-06-21T08:16:00.3140448Z               "line": 18
2026-06-21T08:16:00.3140547Z             }
2026-06-21T08:16:00.3140651Z           ]
2026-06-21T08:16:00.3140753Z         },
2026-06-21T08:16:00.3140862Z         "unit": {
2026-06-21T08:16:00.3140966Z           "complete": true,
2026-06-21T08:16:00.3141096Z           "evidence": [
2026-06-21T08:16:00.3141214Z             {
2026-06-21T08:16:00.3141388Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3141506Z               "line": 1656
2026-06-21T08:16:00.3141606Z             },
2026-06-21T08:16:00.3141712Z             {
2026-06-21T08:16:00.3141858Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T08:16:00.3141976Z               "line": 316
2026-06-21T08:16:00.3142072Z             },
2026-06-21T08:16:00.3142182Z             {
2026-06-21T08:16:00.3142329Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T08:16:00.3142439Z               "line": 332
2026-06-21T08:16:00.3142548Z             },
2026-06-21T08:16:00.3142649Z             {
2026-06-21T08:16:00.3142802Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T08:16:00.3142925Z               "line": 345
2026-06-21T08:16:00.3143017Z             },
2026-06-21T08:16:00.3143121Z             {
2026-06-21T08:16:00.3143259Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T08:16:00.3143379Z               "line": 422
2026-06-21T08:16:00.3143479Z             },
2026-06-21T08:16:00.3143579Z             {
2026-06-21T08:16:00.3143727Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T08:16:00.3143836Z               "line": 436
2026-06-21T08:16:00.3143947Z             }
2026-06-21T08:16:00.3144056Z           ]
2026-06-21T08:16:00.3144155Z         }
2026-06-21T08:16:00.3144260Z       }
2026-06-21T08:16:00.3144359Z     },
2026-06-21T08:16:00.3144448Z     {
2026-06-21T08:16:00.3144557Z       "id": "REQ-MESH-1",
2026-06-21T08:16:00.3146641Z       "title": "Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).",
2026-06-21T08:16:00.3147097Z       "requiredStages": [
2026-06-21T08:16:00.3147217Z         "impl",
2026-06-21T08:16:00.3147329Z         "unit",
2026-06-21T08:16:00.3147434Z         "int"
2026-06-21T08:16:00.3147540Z       ],
2026-06-21T08:16:00.3147644Z       "stages": {
2026-06-21T08:16:00.3147758Z         "doc": {
2026-06-21T08:16:00.3147878Z           "complete": false,
2026-06-21T08:16:00.3148011Z           "evidence": []
2026-06-21T08:16:00.3148117Z         },
2026-06-21T08:16:00.3148241Z         "impl": {
2026-06-21T08:16:00.3148359Z           "complete": true,
2026-06-21T08:16:00.3148461Z           "evidence": [
2026-06-21T08:16:00.3148564Z             {
2026-06-21T08:16:00.3148727Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.3148832Z               "line": 972
2026-06-21T08:16:00.3149017Z             },
2026-06-21T08:16:00.3149104Z             {
2026-06-21T08:16:00.3149255Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T08:16:00.3149366Z               "line": 38
2026-06-21T08:16:00.3149466Z             },
2026-06-21T08:16:00.3149565Z             {
2026-06-21T08:16:00.3149712Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T08:16:00.3149877Z               "line": 161
2026-06-21T08:16:00.3149972Z             },
2026-06-21T08:16:00.3150077Z             {
2026-06-21T08:16:00.3150221Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T08:16:00.3150339Z               "line": 206
2026-06-21T08:16:00.3150450Z             },
2026-06-21T08:16:00.3150549Z             {
2026-06-21T08:16:00.3150693Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T08:16:00.3150797Z               "line": 57
2026-06-21T08:16:00.3150906Z             },
2026-06-21T08:16:00.3151013Z             {
2026-06-21T08:16:00.3151179Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T08:16:00.3151284Z               "line": 24
2026-06-21T08:16:00.3151384Z             },
2026-06-21T08:16:00.3151494Z             {
2026-06-21T08:16:00.3151652Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T08:16:00.3151761Z               "line": 142
2026-06-21T08:16:00.3151865Z             },
2026-06-21T08:16:00.3151972Z             {
2026-06-21T08:16:00.3152127Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T08:16:00.3152238Z               "line": 162
2026-06-21T08:16:00.3152343Z             }
2026-06-21T08:16:00.3152442Z           ]
2026-06-21T08:16:00.3152546Z         },
2026-06-21T08:16:00.3152647Z         "int": {
2026-06-21T08:16:00.3152766Z           "complete": true,
2026-06-21T08:16:00.3152879Z           "evidence": [
2026-06-21T08:16:00.3152986Z             {
2026-06-21T08:16:00.3153142Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-21T08:16:00.3153253Z               "line": 67
2026-06-21T08:16:00.3153357Z             },
2026-06-21T08:16:00.3153456Z             {
2026-06-21T08:16:00.3153606Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-21T08:16:00.3153710Z               "line": 93
2026-06-21T08:16:00.3153810Z             },
2026-06-21T08:16:00.3153916Z             {
2026-06-21T08:16:00.3154058Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-21T08:16:00.3154168Z               "line": 117
2026-06-21T08:16:00.3154283Z             },
2026-06-21T08:16:00.3154492Z             {
2026-06-21T08:16:00.3154639Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-21T08:16:00.3154848Z               "line": 134
2026-06-21T08:16:00.3154957Z             }
2026-06-21T08:16:00.3155061Z           ]
2026-06-21T08:16:00.3155165Z         },
2026-06-21T08:16:00.3155272Z         "unit": {
2026-06-21T08:16:00.3155389Z           "complete": true,
2026-06-21T08:16:00.3155504Z           "evidence": [
2026-06-21T08:16:00.3155610Z             {
2026-06-21T08:16:00.3155761Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T08:16:00.3155871Z               "line": 427
2026-06-21T08:16:00.3155985Z             },
2026-06-21T08:16:00.3156091Z             {
2026-06-21T08:16:00.3156258Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T08:16:00.3156372Z               "line": 376
2026-06-21T08:16:00.3156478Z             },
2026-06-21T08:16:00.3156587Z             {
2026-06-21T08:16:00.3156735Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T08:16:00.3156863Z               "line": 412
2026-06-21T08:16:00.3156972Z             },
2026-06-21T08:16:00.3157083Z             {
2026-06-21T08:16:00.3157244Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T08:16:00.3157350Z               "line": 427
2026-06-21T08:16:00.3157451Z             },
2026-06-21T08:16:00.3157554Z             {
2026-06-21T08:16:00.3157710Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T08:16:00.3157833Z               "line": 438
2026-06-21T08:16:00.3157937Z             },
2026-06-21T08:16:00.3158047Z             {
2026-06-21T08:16:00.3158199Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T08:16:00.3158309Z               "line": 449
2026-06-21T08:16:00.3158414Z             },
2026-06-21T08:16:00.3158519Z             {
2026-06-21T08:16:00.3158672Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T08:16:00.3158777Z               "line": 460
2026-06-21T08:16:00.3158876Z             },
2026-06-21T08:16:00.3159058Z             {
2026-06-21T08:16:00.3159225Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T08:16:00.3159345Z               "line": 496
2026-06-21T08:16:00.3159449Z             },
2026-06-21T08:16:00.3159554Z             {
2026-06-21T08:16:00.3159702Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T08:16:00.3159820Z               "line": 519
2026-06-21T08:16:00.3159922Z             },
2026-06-21T08:16:00.3160026Z             {
2026-06-21T08:16:00.3160186Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T08:16:00.3160297Z               "line": 546
2026-06-21T08:16:00.3160404Z             }
2026-06-21T08:16:00.3160499Z           ]
2026-06-21T08:16:00.3160604Z         }
2026-06-21T08:16:00.3160710Z       }
2026-06-21T08:16:00.3160814Z     },
2026-06-21T08:16:00.3160909Z     {
2026-06-21T08:16:00.3161019Z       "id": "REQ-MESH-2",
2026-06-21T08:16:00.3163574Z       "title": "Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).",
2026-06-21T08:16:00.3163711Z       "requiredStages": [
2026-06-21T08:16:00.3163808Z         "impl",
2026-06-21T08:16:00.3164031Z         "unit",
2026-06-21T08:16:00.3164137Z         "int"
2026-06-21T08:16:00.3164246Z       ],
2026-06-21T08:16:00.3164443Z       "stages": {
2026-06-21T08:16:00.3164556Z         "doc": {
2026-06-21T08:16:00.3164670Z           "complete": false,
2026-06-21T08:16:00.3164776Z           "evidence": []
2026-06-21T08:16:00.3164871Z         },
2026-06-21T08:16:00.3164971Z         "impl": {
2026-06-21T08:16:00.3165091Z           "complete": true,
2026-06-21T08:16:00.3165195Z           "evidence": [
2026-06-21T08:16:00.3165294Z             {
2026-06-21T08:16:00.3165446Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.3165550Z               "line": 807
2026-06-21T08:16:00.3165649Z             },
2026-06-21T08:16:00.3165797Z             {
2026-06-21T08:16:00.3165978Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T08:16:00.3166098Z               "line": 118
2026-06-21T08:16:00.3166203Z             },
2026-06-21T08:16:00.3166312Z             {
2026-06-21T08:16:00.3166469Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T08:16:00.3166588Z               "line": 347
2026-06-21T08:16:00.3166699Z             },
2026-06-21T08:16:00.3166813Z             {
2026-06-21T08:16:00.3166965Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T08:16:00.3167076Z               "line": 389
2026-06-21T08:16:00.3167185Z             },
2026-06-21T08:16:00.3167285Z             {
2026-06-21T08:16:00.3167428Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T08:16:00.3167532Z               "line": 403
2026-06-21T08:16:00.3167639Z             },
2026-06-21T08:16:00.3167743Z             {
2026-06-21T08:16:00.3167886Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T08:16:00.3167992Z               "line": 492
2026-06-21T08:16:00.3168095Z             },
2026-06-21T08:16:00.3168199Z             {
2026-06-21T08:16:00.3168347Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T08:16:00.3168464Z               "line": 507
2026-06-21T08:16:00.3168579Z             },
2026-06-21T08:16:00.3168679Z             {
2026-06-21T08:16:00.3168836Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T08:16:00.3169070Z               "line": 534
2026-06-21T08:16:00.3169183Z             },
2026-06-21T08:16:00.3169294Z             {
2026-06-21T08:16:00.3169484Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T08:16:00.3169595Z               "line": 207
2026-06-21T08:16:00.3169699Z             },
2026-06-21T08:16:00.3169799Z             {
2026-06-21T08:16:00.3169947Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T08:16:00.3170066Z               "line": 755
2026-06-21T08:16:00.3170172Z             },
2026-06-21T08:16:00.3170281Z             {
2026-06-21T08:16:00.3170429Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T08:16:00.3170535Z               "line": 816
2026-06-21T08:16:00.3170643Z             },
2026-06-21T08:16:00.3170742Z             {
2026-06-21T08:16:00.3170885Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T08:16:00.3170997Z               "line": 869
2026-06-21T08:16:00.3171106Z             },
2026-06-21T08:16:00.3171212Z             {
2026-06-21T08:16:00.3171359Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T08:16:00.3171469Z               "line": 891
2026-06-21T08:16:00.3171579Z             },
2026-06-21T08:16:00.3171679Z             {
2026-06-21T08:16:00.3171814Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.3171923Z               "line": 122
2026-06-21T08:16:00.3172032Z             },
2026-06-21T08:16:00.3172133Z             {
2026-06-21T08:16:00.3172285Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T08:16:00.3172399Z               "line": 44
2026-06-21T08:16:00.3172509Z             },
2026-06-21T08:16:00.3172614Z             {
2026-06-21T08:16:00.3172743Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T08:16:00.3172971Z               "line": 184
2026-06-21T08:16:00.3173077Z             },
2026-06-21T08:16:00.3173186Z             {
2026-06-21T08:16:00.3173426Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T08:16:00.3173547Z               "line": 211
2026-06-21T08:16:00.3173656Z             },
2026-06-21T08:16:00.3173762Z             {
2026-06-21T08:16:00.3173905Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T08:16:00.3174014Z               "line": 251
2026-06-21T08:16:00.3174125Z             },
2026-06-21T08:16:00.3174229Z             {
2026-06-21T08:16:00.3174382Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T08:16:00.3174497Z               "line": 275
2026-06-21T08:16:00.3174600Z             },
2026-06-21T08:16:00.3174711Z             {
2026-06-21T08:16:00.3174840Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T08:16:00.3174959Z               "line": 289
2026-06-21T08:16:00.3175064Z             },
2026-06-21T08:16:00.3175178Z             {
2026-06-21T08:16:00.3175318Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T08:16:00.3175436Z               "line": 300
2026-06-21T08:16:00.3175540Z             },
2026-06-21T08:16:00.3175651Z             {
2026-06-21T08:16:00.3175797Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T08:16:00.3175911Z               "line": 313
2026-06-21T08:16:00.3176021Z             }
2026-06-21T08:16:00.3176124Z           ]
2026-06-21T08:16:00.3176228Z         },
2026-06-21T08:16:00.3176334Z         "int": {
2026-06-21T08:16:00.3176443Z           "complete": true,
2026-06-21T08:16:00.3176562Z           "evidence": [
2026-06-21T08:16:00.3176663Z             {
2026-06-21T08:16:00.3176853Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-21T08:16:00.3176992Z               "line": 116
2026-06-21T08:16:00.3177096Z             },
2026-06-21T08:16:00.3177211Z             {
2026-06-21T08:16:00.3177368Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-21T08:16:00.3177487Z               "line": 181
2026-06-21T08:16:00.3177588Z             }
2026-06-21T08:16:00.3177702Z           ]
2026-06-21T08:16:00.3177816Z         },
2026-06-21T08:16:00.3177927Z         "unit": {
2026-06-21T08:16:00.3178040Z           "complete": true,
2026-06-21T08:16:00.3178150Z           "evidence": [
2026-06-21T08:16:00.3178256Z             {
2026-06-21T08:16:00.3178407Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T08:16:00.3178523Z               "line": 999
2026-06-21T08:16:00.3178627Z             },
2026-06-21T08:16:00.3178731Z             {
2026-06-21T08:16:00.3178878Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T08:16:00.3179057Z               "line": 1016
2026-06-21T08:16:00.3179162Z             },
2026-06-21T08:16:00.3179268Z             {
2026-06-21T08:16:00.3179419Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T08:16:00.3179540Z               "line": 1024
2026-06-21T08:16:00.3179649Z             },
2026-06-21T08:16:00.3179763Z             {
2026-06-21T08:16:00.3179911Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T08:16:00.3180025Z               "line": 1048
2026-06-21T08:16:00.3180136Z             },
2026-06-21T08:16:00.3180240Z             {
2026-06-21T08:16:00.3180397Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T08:16:00.3180508Z               "line": 1499
2026-06-21T08:16:00.3180612Z             },
2026-06-21T08:16:00.3180717Z             {
2026-06-21T08:16:00.3180865Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T08:16:00.3180974Z               "line": 347
2026-06-21T08:16:00.3181071Z             },
2026-06-21T08:16:00.3181180Z             {
2026-06-21T08:16:00.3181316Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T08:16:00.3181431Z               "line": 370
2026-06-21T08:16:00.3181538Z             },
2026-06-21T08:16:00.3181647Z             {
2026-06-21T08:16:00.3181792Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T08:16:00.3182020Z               "line": 407
2026-06-21T08:16:00.3182206Z             },
2026-06-21T08:16:00.3182315Z             {
2026-06-21T08:16:00.3182459Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T08:16:00.3182563Z               "line": 431
2026-06-21T08:16:00.3182674Z             },
2026-06-21T08:16:00.3182783Z             {
2026-06-21T08:16:00.3182912Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T08:16:00.3183027Z               "line": 483
2026-06-21T08:16:00.3183131Z             },
2026-06-21T08:16:00.3183241Z             {
2026-06-21T08:16:00.3183380Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T08:16:00.3183488Z               "line": 499
2026-06-21T08:16:00.3183589Z             },
2026-06-21T08:16:00.3183695Z             {
2026-06-21T08:16:00.3183837Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T08:16:00.3183952Z               "line": 514
2026-06-21T08:16:00.3184070Z             },
2026-06-21T08:16:00.3184169Z             {
2026-06-21T08:16:00.3184313Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T08:16:00.3184427Z               "line": 531
2026-06-21T08:16:00.3184531Z             }
2026-06-21T08:16:00.3184637Z           ]
2026-06-21T08:16:00.3184733Z         }
2026-06-21T08:16:00.3184841Z       }
2026-06-21T08:16:00.3184943Z     },
2026-06-21T08:16:00.3185052Z     {
2026-06-21T08:16:00.3185175Z       "id": "REQ-MESH-3",
2026-06-21T08:16:00.3186884Z       "title": "Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.",
2026-06-21T08:16:00.3187036Z       "requiredStages": [
2026-06-21T08:16:00.3187166Z         "impl",
2026-06-21T08:16:00.3187266Z         "unit",
2026-06-21T08:16:00.3187370Z         "int"
2026-06-21T08:16:00.3187476Z       ],
2026-06-21T08:16:00.3187581Z       "stages": {
2026-06-21T08:16:00.3187685Z         "doc": {
2026-06-21T08:16:00.3187810Z           "complete": false,
2026-06-21T08:16:00.3187928Z           "evidence": []
2026-06-21T08:16:00.3188032Z         },
2026-06-21T08:16:00.3188143Z         "impl": {
2026-06-21T08:16:00.3188267Z           "complete": true,
2026-06-21T08:16:00.3188386Z           "evidence": [
2026-06-21T08:16:00.3188492Z             {
2026-06-21T08:16:00.3188644Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.3188755Z               "line": 641
2026-06-21T08:16:00.3188858Z             }
2026-06-21T08:16:00.3189050Z           ]
2026-06-21T08:16:00.3189150Z         },
2026-06-21T08:16:00.3189272Z         "int": {
2026-06-21T08:16:00.3189381Z           "complete": true,
2026-06-21T08:16:00.3189490Z           "evidence": [
2026-06-21T08:16:00.3189598Z             {
2026-06-21T08:16:00.3189751Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-21T08:16:00.3189866Z               "line": 373
2026-06-21T08:16:00.3189970Z             },
2026-06-21T08:16:00.3190081Z             {
2026-06-21T08:16:00.3190223Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-21T08:16:00.3190333Z               "line": 436
2026-06-21T08:16:00.3190443Z             }
2026-06-21T08:16:00.3190547Z           ]
2026-06-21T08:16:00.3190652Z         },
2026-06-21T08:16:00.3190758Z         "unit": {
2026-06-21T08:16:00.3190872Z           "complete": true,
2026-06-21T08:16:00.3190982Z           "evidence": [
2026-06-21T08:16:00.3191082Z             {
2026-06-21T08:16:00.3191234Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.3191340Z               "line": 910
2026-06-21T08:16:00.3191553Z             }
2026-06-21T08:16:00.3191664Z           ]
2026-06-21T08:16:00.3191763Z         }
2026-06-21T08:16:00.3191948Z       }
2026-06-21T08:16:00.3192057Z     },
2026-06-21T08:16:00.3192160Z     {
2026-06-21T08:16:00.3192280Z       "id": "REQ-MESH-4",
2026-06-21T08:16:00.3194479Z       "title": "Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.",
2026-06-21T08:16:00.3194626Z       "requiredStages": [
2026-06-21T08:16:00.3194748Z         "impl",
2026-06-21T08:16:00.3194854Z         "unit",
2026-06-21T08:16:00.3194954Z         "int"
2026-06-21T08:16:00.3195063Z       ],
2026-06-21T08:16:00.3195168Z       "stages": {
2026-06-21T08:16:00.3195279Z         "doc": {
2026-06-21T08:16:00.3195397Z           "complete": false,
2026-06-21T08:16:00.3195503Z           "evidence": []
2026-06-21T08:16:00.3195608Z         },
2026-06-21T08:16:00.3195716Z         "impl": {
2026-06-21T08:16:00.3195837Z           "complete": true,
2026-06-21T08:16:00.3195941Z           "evidence": [
2026-06-21T08:16:00.3196045Z             {
2026-06-21T08:16:00.3196208Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-21T08:16:00.3196322Z               "line": 33
2026-06-21T08:16:00.3196428Z             },
2026-06-21T08:16:00.3196528Z             {
2026-06-21T08:16:00.3196680Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T08:16:00.3196809Z               "line": 68
2026-06-21T08:16:00.3196903Z             },
2026-06-21T08:16:00.3197022Z             {
2026-06-21T08:16:00.3197174Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T08:16:00.3197282Z               "line": 111
2026-06-21T08:16:00.3197392Z             },
2026-06-21T08:16:00.3197493Z             {
2026-06-21T08:16:00.3197644Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T08:16:00.3197754Z               "line": 462
2026-06-21T08:16:00.3197864Z             },
2026-06-21T08:16:00.3197963Z             {
2026-06-21T08:16:00.3198117Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T08:16:00.3198231Z               "line": 711
2026-06-21T08:16:00.3198331Z             },
2026-06-21T08:16:00.3198436Z             {
2026-06-21T08:16:00.3198579Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T08:16:00.3198695Z               "line": 725
2026-06-21T08:16:00.3198798Z             },
2026-06-21T08:16:00.3198903Z             {
2026-06-21T08:16:00.3199113Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.3199241Z               "line": 132
2026-06-21T08:16:00.3199348Z             },
2026-06-21T08:16:00.3199451Z             {
2026-06-21T08:16:00.3199600Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-21T08:16:00.3199701Z               "line": 26
2026-06-21T08:16:00.3199818Z             },
2026-06-21T08:16:00.3199922Z             {
2026-06-21T08:16:00.3200074Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-21T08:16:00.3200191Z               "line": 97
2026-06-21T08:16:00.3200293Z             },
2026-06-21T08:16:00.3200388Z             {
2026-06-21T08:16:00.3200530Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-21T08:16:00.3203832Z               "line": 119
2026-06-21T08:16:00.3203966Z             },
2026-06-21T08:16:00.3204074Z             {
2026-06-21T08:16:00.3204227Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T08:16:00.3204481Z               "line": 82
2026-06-21T08:16:00.3204594Z             },
2026-06-21T08:16:00.3204782Z             {
2026-06-21T08:16:00.3204933Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T08:16:00.3205044Z               "line": 111
2026-06-21T08:16:00.3205149Z             },
2026-06-21T08:16:00.3205256Z             {
2026-06-21T08:16:00.3205390Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T08:16:00.3205510Z               "line": 232
2026-06-21T08:16:00.3205614Z             },
2026-06-21T08:16:00.3205714Z             {
2026-06-21T08:16:00.3205858Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T08:16:00.3205971Z               "line": 245
2026-06-21T08:16:00.3206082Z             },
2026-06-21T08:16:00.3206182Z             {
2026-06-21T08:16:00.3206315Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3206425Z               "line": 4665
2026-06-21T08:16:00.3206534Z             }
2026-06-21T08:16:00.3206639Z           ]
2026-06-21T08:16:00.3206745Z         },
2026-06-21T08:16:00.3206854Z         "int": {
2026-06-21T08:16:00.3206983Z           "complete": true,
2026-06-21T08:16:00.3207097Z           "evidence": [
2026-06-21T08:16:00.3207201Z             {
2026-06-21T08:16:00.3207351Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-21T08:16:00.3207463Z               "line": 98
2026-06-21T08:16:00.3207568Z             },
2026-06-21T08:16:00.3207673Z             {
2026-06-21T08:16:00.3207818Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-21T08:16:00.3207923Z               "line": 140
2026-06-21T08:16:00.3208029Z             }
2026-06-21T08:16:00.3208133Z           ]
2026-06-21T08:16:00.3208233Z         },
2026-06-21T08:16:00.3208339Z         "unit": {
2026-06-21T08:16:00.3208462Z           "complete": true,
2026-06-21T08:16:00.3208562Z           "evidence": [
2026-06-21T08:16:00.3208677Z             {
2026-06-21T08:16:00.3208838Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-21T08:16:00.3209049Z               "line": 178
2026-06-21T08:16:00.3209158Z             },
2026-06-21T08:16:00.3209255Z             {
2026-06-21T08:16:00.3209406Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-21T08:16:00.3209516Z               "line": 242
2026-06-21T08:16:00.3209617Z             },
2026-06-21T08:16:00.3209721Z             {
2026-06-21T08:16:00.3209875Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T08:16:00.3209988Z               "line": 1079
2026-06-21T08:16:00.3210088Z             },
2026-06-21T08:16:00.3210189Z             {
2026-06-21T08:16:00.3210340Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T08:16:00.3210458Z               "line": 1109
2026-06-21T08:16:00.3210559Z             },
2026-06-21T08:16:00.3210666Z             {
2026-06-21T08:16:00.3210819Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T08:16:00.3210925Z               "line": 1129
2026-06-21T08:16:00.3211038Z             },
2026-06-21T08:16:00.3211138Z             {
2026-06-21T08:16:00.3211301Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T08:16:00.3211414Z               "line": 602
2026-06-21T08:16:00.3211525Z             },
2026-06-21T08:16:00.3211630Z             {
2026-06-21T08:16:00.3211777Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-21T08:16:00.3211892Z               "line": 148
2026-06-21T08:16:00.3211997Z             },
2026-06-21T08:16:00.3212102Z             {
2026-06-21T08:16:00.3212240Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-21T08:16:00.3212340Z               "line": 169
2026-06-21T08:16:00.3212446Z             },
2026-06-21T08:16:00.3212550Z             {
2026-06-21T08:16:00.3212698Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-21T08:16:00.3212813Z               "line": 181
2026-06-21T08:16:00.3212916Z             },
2026-06-21T08:16:00.3213021Z             {
2026-06-21T08:16:00.3213271Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-21T08:16:00.3213391Z               "line": 202
2026-06-21T08:16:00.3213614Z             },
2026-06-21T08:16:00.3213715Z             {
2026-06-21T08:16:00.3213854Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T08:16:00.3213977Z               "line": 375
2026-06-21T08:16:00.3214078Z             },
2026-06-21T08:16:00.3214187Z             {
2026-06-21T08:16:00.3214325Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T08:16:00.3214435Z               "line": 407
2026-06-21T08:16:00.3214535Z             },
2026-06-21T08:16:00.3214630Z             {
2026-06-21T08:16:00.3214759Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3214878Z               "line": 10052
2026-06-21T08:16:00.3214979Z             }
2026-06-21T08:16:00.3215084Z           ]
2026-06-21T08:16:00.3215184Z         }
2026-06-21T08:16:00.3215289Z       }
2026-06-21T08:16:00.3215380Z     },
2026-06-21T08:16:00.3215483Z     {
2026-06-21T08:16:00.3215594Z       "id": "REQ-MESH-5",
2026-06-21T08:16:00.3217037Z       "title": "Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.",
2026-06-21T08:16:00.3217171Z       "requiredStages": [
2026-06-21T08:16:00.3217272Z         "impl",
2026-06-21T08:16:00.3217375Z         "unit"
2026-06-21T08:16:00.3217480Z       ],
2026-06-21T08:16:00.3217582Z       "stages": {
2026-06-21T08:16:00.3217690Z         "doc": {
2026-06-21T08:16:00.3217805Z           "complete": false,
2026-06-21T08:16:00.3217921Z           "evidence": []
2026-06-21T08:16:00.3218019Z         },
2026-06-21T08:16:00.3218146Z         "impl": {
2026-06-21T08:16:00.3218271Z           "complete": true,
2026-06-21T08:16:00.3218393Z           "evidence": [
2026-06-21T08:16:00.3218498Z             {
2026-06-21T08:16:00.3218651Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T08:16:00.3218769Z               "line": 61
2026-06-21T08:16:00.3218875Z             },
2026-06-21T08:16:00.3219055Z             {
2026-06-21T08:16:00.3219209Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T08:16:00.3219318Z               "line": 109
2026-06-21T08:16:00.3219427Z             },
2026-06-21T08:16:00.3219519Z             {
2026-06-21T08:16:00.3219666Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T08:16:00.3219766Z               "line": 104
2026-06-21T08:16:00.3219876Z             },
2026-06-21T08:16:00.3219980Z             {
2026-06-21T08:16:00.3220125Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T08:16:00.3220238Z               "line": 105
2026-06-21T08:16:00.3220343Z             },
2026-06-21T08:16:00.3220449Z             {
2026-06-21T08:16:00.3220605Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.3220711Z               "line": 85
2026-06-21T08:16:00.3220816Z             },
2026-06-21T08:16:00.3220924Z             {
2026-06-21T08:16:00.3221071Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.3221184Z               "line": 250
2026-06-21T08:16:00.3221293Z             },
2026-06-21T08:16:00.3221393Z             {
2026-06-21T08:16:00.3221537Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.3221650Z               "line": 314
2026-06-21T08:16:00.3221752Z             },
2026-06-21T08:16:00.3221861Z             {
2026-06-21T08:16:00.3222009Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.3222118Z               "line": 767
2026-06-21T08:16:00.3222223Z             },
2026-06-21T08:16:00.3222333Z             {
2026-06-21T08:16:00.3222576Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T08:16:00.3222682Z               "line": 101
2026-06-21T08:16:00.3222871Z             },
2026-06-21T08:16:00.3222967Z             {
2026-06-21T08:16:00.3223119Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T08:16:00.3223229Z               "line": 193
2026-06-21T08:16:00.3223336Z             }
2026-06-21T08:16:00.3223444Z           ]
2026-06-21T08:16:00.3223552Z         },
2026-06-21T08:16:00.3223662Z         "int": {
2026-06-21T08:16:00.3223784Z           "complete": false,
2026-06-21T08:16:00.3223898Z           "evidence": []
2026-06-21T08:16:00.3224003Z         },
2026-06-21T08:16:00.3224108Z         "unit": {
2026-06-21T08:16:00.3224222Z           "complete": true,
2026-06-21T08:16:00.3224333Z           "evidence": [
2026-06-21T08:16:00.3224428Z             {
2026-06-21T08:16:00.3224580Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.3224700Z               "line": 1009
2026-06-21T08:16:00.3224799Z             },
2026-06-21T08:16:00.3224895Z             {
2026-06-21T08:16:00.3225047Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T08:16:00.3225156Z               "line": 462
2026-06-21T08:16:00.3225267Z             }
2026-06-21T08:16:00.3225371Z           ]
2026-06-21T08:16:00.3225466Z         }
2026-06-21T08:16:00.3225568Z       }
2026-06-21T08:16:00.3225677Z     },
2026-06-21T08:16:00.3225777Z     {
2026-06-21T08:16:00.3225892Z       "id": "REQ-MESH-6",
2026-06-21T08:16:00.3227140Z       "title": "Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)",
2026-06-21T08:16:00.3227273Z       "requiredStages": [
2026-06-21T08:16:00.3227401Z         "impl",
2026-06-21T08:16:00.3227512Z         "unit"
2026-06-21T08:16:00.3227626Z       ],
2026-06-21T08:16:00.3227731Z       "stages": {
2026-06-21T08:16:00.3227832Z         "doc": {
2026-06-21T08:16:00.3227950Z           "complete": false,
2026-06-21T08:16:00.3228060Z           "evidence": []
2026-06-21T08:16:00.3228161Z         },
2026-06-21T08:16:00.3228269Z         "impl": {
2026-06-21T08:16:00.3228389Z           "complete": true,
2026-06-21T08:16:00.3228495Z           "evidence": [
2026-06-21T08:16:00.3228598Z             {
2026-06-21T08:16:00.3228731Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3228845Z               "line": 4181
2026-06-21T08:16:00.3229023Z             }
2026-06-21T08:16:00.3229125Z           ]
2026-06-21T08:16:00.3229225Z         },
2026-06-21T08:16:00.3229334Z         "int": {
2026-06-21T08:16:00.3229440Z           "complete": false,
2026-06-21T08:16:00.3229563Z           "evidence": []
2026-06-21T08:16:00.3229667Z         },
2026-06-21T08:16:00.3229774Z         "unit": {
2026-06-21T08:16:00.3229887Z           "complete": true,
2026-06-21T08:16:00.3230002Z           "evidence": [
2026-06-21T08:16:00.3230112Z             {
2026-06-21T08:16:00.3230240Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3230350Z               "line": 10602
2026-06-21T08:16:00.3230450Z             },
2026-06-21T08:16:00.3230540Z             {
2026-06-21T08:16:00.3230665Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3230774Z               "line": 10629
2026-06-21T08:16:00.3230879Z             },
2026-06-21T08:16:00.3230980Z             {
2026-06-21T08:16:00.3231108Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3231218Z               "line": 10653
2026-06-21T08:16:00.3231324Z             }
2026-06-21T08:16:00.3231437Z           ]
2026-06-21T08:16:00.3231536Z         }
2026-06-21T08:16:00.3231631Z       }
2026-06-21T08:16:00.3231731Z     },
2026-06-21T08:16:00.3231830Z     {
2026-06-21T08:16:00.3232050Z       "id": "REQ-MIGRATE-1",
2026-06-21T08:16:00.3232244Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-21T08:16:00.3232463Z       "requiredStages": [],
2026-06-21T08:16:00.3232569Z       "stages": {
2026-06-21T08:16:00.3232683Z         "doc": {
2026-06-21T08:16:00.3232787Z           "complete": false,
2026-06-21T08:16:00.3232903Z           "evidence": []
2026-06-21T08:16:00.3233003Z         },
2026-06-21T08:16:00.3233107Z         "impl": {
2026-06-21T08:16:00.3233218Z           "complete": false,
2026-06-21T08:16:00.3233327Z           "evidence": []
2026-06-21T08:16:00.3233427Z         },
2026-06-21T08:16:00.3233533Z         "int": {
2026-06-21T08:16:00.3233656Z           "complete": false,
2026-06-21T08:16:00.3233770Z           "evidence": []
2026-06-21T08:16:00.3233871Z         },
2026-06-21T08:16:00.3233985Z         "unit": {
2026-06-21T08:16:00.3234098Z           "complete": false,
2026-06-21T08:16:00.3234213Z           "evidence": []
2026-06-21T08:16:00.3234316Z         }
2026-06-21T08:16:00.3234420Z       }
2026-06-21T08:16:00.3234520Z     },
2026-06-21T08:16:00.3234631Z     {
2026-06-21T08:16:00.3234739Z       "id": "REQ-MSG-1",
2026-06-21T08:16:00.3235207Z       "title": "Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)",
2026-06-21T08:16:00.3235326Z       "requiredStages": [
2026-06-21T08:16:00.3235436Z         "impl",
2026-06-21T08:16:00.3235546Z         "unit",
2026-06-21T08:16:00.3235646Z         "int"
2026-06-21T08:16:00.3235746Z       ],
2026-06-21T08:16:00.3235861Z       "stages": {
2026-06-21T08:16:00.3235970Z         "doc": {
2026-06-21T08:16:00.3236075Z           "complete": false,
2026-06-21T08:16:00.3236185Z           "evidence": []
2026-06-21T08:16:00.3236294Z         },
2026-06-21T08:16:00.3236404Z         "impl": {
2026-06-21T08:16:00.3236519Z           "complete": true,
2026-06-21T08:16:00.3236633Z           "evidence": [
2026-06-21T08:16:00.3236734Z             {
2026-06-21T08:16:00.3236885Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T08:16:00.3236998Z               "line": 28
2026-06-21T08:16:00.3237099Z             },
2026-06-21T08:16:00.3237205Z             {
2026-06-21T08:16:00.3237347Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T08:16:00.3237462Z               "line": 94
2026-06-21T08:16:00.3237562Z             },
2026-06-21T08:16:00.3237666Z             {
2026-06-21T08:16:00.3237805Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T08:16:00.3237909Z               "line": 127
2026-06-21T08:16:00.3238019Z             },
2026-06-21T08:16:00.3238120Z             {
2026-06-21T08:16:00.3238262Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T08:16:00.3238373Z               "line": 149
2026-06-21T08:16:00.3238477Z             },
2026-06-21T08:16:00.3238581Z             {
2026-06-21T08:16:00.3238716Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T08:16:00.3238824Z               "line": 174
2026-06-21T08:16:00.3238925Z             },
2026-06-21T08:16:00.3239102Z             {
2026-06-21T08:16:00.3239234Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-21T08:16:00.3239353Z               "line": 18
2026-06-21T08:16:00.3239452Z             },
2026-06-21T08:16:00.3239560Z             {
2026-06-21T08:16:00.3239700Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-21T08:16:00.3239809Z               "line": 13
2026-06-21T08:16:00.3239913Z             },
2026-06-21T08:16:00.3240010Z             {
2026-06-21T08:16:00.3240151Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-21T08:16:00.3240257Z               "line": 62
2026-06-21T08:16:00.3240367Z             },
2026-06-21T08:16:00.3240462Z             {
2026-06-21T08:16:00.3240596Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-21T08:16:00.3240710Z               "line": 13
2026-06-21T08:16:00.3240814Z             }
2026-06-21T08:16:00.3241034Z           ]
2026-06-21T08:16:00.3241124Z         },
2026-06-21T08:16:00.3241226Z         "int": {
2026-06-21T08:16:00.3241439Z           "complete": true,
2026-06-21T08:16:00.3241546Z           "evidence": [
2026-06-21T08:16:00.3241650Z             {
2026-06-21T08:16:00.3241812Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-21T08:16:00.3241922Z               "line": 9
2026-06-21T08:16:00.3242025Z             },
2026-06-21T08:16:00.3242120Z             {
2026-06-21T08:16:00.3242277Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-21T08:16:00.3242380Z               "line": 56
2026-06-21T08:16:00.3242485Z             },
2026-06-21T08:16:00.3242586Z             {
2026-06-21T08:16:00.3242742Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-21T08:16:00.3242848Z               "line": 113
2026-06-21T08:16:00.3242948Z             }
2026-06-21T08:16:00.3243057Z           ]
2026-06-21T08:16:00.3243158Z         },
2026-06-21T08:16:00.3243272Z         "unit": {
2026-06-21T08:16:00.3243391Z           "complete": true,
2026-06-21T08:16:00.3243506Z           "evidence": [
2026-06-21T08:16:00.3243620Z             {
2026-06-21T08:16:00.3243753Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T08:16:00.3243868Z               "line": 203
2026-06-21T08:16:00.3243968Z             },
2026-06-21T08:16:00.3244073Z             {
2026-06-21T08:16:00.3244211Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T08:16:00.3244316Z               "line": 232
2026-06-21T08:16:00.3244422Z             },
2026-06-21T08:16:00.3244526Z             {
2026-06-21T08:16:00.3244672Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T08:16:00.3244782Z               "line": 277
2026-06-21T08:16:00.3244890Z             },
2026-06-21T08:16:00.3244994Z             {
2026-06-21T08:16:00.3245133Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T08:16:00.3245247Z               "line": 300
2026-06-21T08:16:00.3245357Z             },
2026-06-21T08:16:00.3245467Z             {
2026-06-21T08:16:00.3245595Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T08:16:00.3245730Z               "line": 325
2026-06-21T08:16:00.3245834Z             },
2026-06-21T08:16:00.3245934Z             {
2026-06-21T08:16:00.3246082Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-21T08:16:00.3246191Z               "line": 204
2026-06-21T08:16:00.3246301Z             },
2026-06-21T08:16:00.3246402Z             {
2026-06-21T08:16:00.3246544Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-21T08:16:00.3246659Z               "line": 237
2026-06-21T08:16:00.3246773Z             },
2026-06-21T08:16:00.3246878Z             {
2026-06-21T08:16:00.3247018Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-21T08:16:00.3247135Z               "line": 251
2026-06-21T08:16:00.3247236Z             },
2026-06-21T08:16:00.3247333Z             {
2026-06-21T08:16:00.3247473Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-21T08:16:00.3247597Z               "line": 263
2026-06-21T08:16:00.3247708Z             },
2026-06-21T08:16:00.3247817Z             {
2026-06-21T08:16:00.3247965Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-21T08:16:00.3248079Z               "line": 162
2026-06-21T08:16:00.3248178Z             },
2026-06-21T08:16:00.3248280Z             {
2026-06-21T08:16:00.3248423Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-21T08:16:00.3248541Z               "line": 242
2026-06-21T08:16:00.3248637Z             },
2026-06-21T08:16:00.3248736Z             {
2026-06-21T08:16:00.3248860Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-21T08:16:00.3249047Z               "line": 134
2026-06-21T08:16:00.3249146Z             },
2026-06-21T08:16:00.3249253Z             {
2026-06-21T08:16:00.3249394Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-21T08:16:00.3249505Z               "line": 153
2026-06-21T08:16:00.3249610Z             }
2026-06-21T08:16:00.3249822Z           ]
2026-06-21T08:16:00.3249932Z         }
2026-06-21T08:16:00.3250026Z       }
2026-06-21T08:16:00.3250216Z     },
2026-06-21T08:16:00.3250327Z     {
2026-06-21T08:16:00.3250440Z       "id": "REQ-MSG-2",
2026-06-21T08:16:00.3250745Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-21T08:16:00.3250861Z       "requiredStages": [
2026-06-21T08:16:00.3250965Z         "impl",
2026-06-21T08:16:00.3251069Z         "unit"
2026-06-21T08:16:00.3251175Z       ],
2026-06-21T08:16:00.3251289Z       "stages": {
2026-06-21T08:16:00.3251398Z         "doc": {
2026-06-21T08:16:00.3251514Z           "complete": false,
2026-06-21T08:16:00.3251618Z           "evidence": []
2026-06-21T08:16:00.3251727Z         },
2026-06-21T08:16:00.3251838Z         "impl": {
2026-06-21T08:16:00.3251956Z           "complete": true,
2026-06-21T08:16:00.3252062Z           "evidence": [
2026-06-21T08:16:00.3252167Z             {
2026-06-21T08:16:00.3252310Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3252420Z               "line": 11
2026-06-21T08:16:00.3252539Z             },
2026-06-21T08:16:00.3252642Z             {
2026-06-21T08:16:00.3252771Z               "path": "crates/spt/src/main.rs",
2026-06-21T08:16:00.3252879Z               "line": 8
2026-06-21T08:16:00.3252968Z             }
2026-06-21T08:16:00.3253065Z           ]
2026-06-21T08:16:00.3253165Z         },
2026-06-21T08:16:00.3253278Z         "int": {
2026-06-21T08:16:00.3253394Z           "complete": false,
2026-06-21T08:16:00.3253513Z           "evidence": []
2026-06-21T08:16:00.3253617Z         },
2026-06-21T08:16:00.3253723Z         "unit": {
2026-06-21T08:16:00.3253847Z           "complete": true,
2026-06-21T08:16:00.3253955Z           "evidence": [
2026-06-21T08:16:00.3254066Z             {
2026-06-21T08:16:00.3254195Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3254313Z               "line": 7717
2026-06-21T08:16:00.3254419Z             },
2026-06-21T08:16:00.3254523Z             {
2026-06-21T08:16:00.3254648Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3254767Z               "line": 7759
2026-06-21T08:16:00.3254876Z             },
2026-06-21T08:16:00.3254973Z             {
2026-06-21T08:16:00.3255105Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3255214Z               "line": 7808
2026-06-21T08:16:00.3255318Z             },
2026-06-21T08:16:00.3255427Z             {
2026-06-21T08:16:00.3255550Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3255660Z               "line": 7831
2026-06-21T08:16:00.3255765Z             },
2026-06-21T08:16:00.3255874Z             {
2026-06-21T08:16:00.3256008Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3256117Z               "line": 9807
2026-06-21T08:16:00.3256222Z             },
2026-06-21T08:16:00.3256314Z             {
2026-06-21T08:16:00.3256446Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3256561Z               "line": 9816
2026-06-21T08:16:00.3256666Z             },
2026-06-21T08:16:00.3256780Z             {
2026-06-21T08:16:00.3256909Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3257019Z               "line": 9830
2026-06-21T08:16:00.3257123Z             }
2026-06-21T08:16:00.3257219Z           ]
2026-06-21T08:16:00.3257328Z         }
2026-06-21T08:16:00.3257429Z       }
2026-06-21T08:16:00.3257539Z     },
2026-06-21T08:16:00.3257639Z     {
2026-06-21T08:16:00.3257758Z       "id": "REQ-MSG-3",
2026-06-21T08:16:00.3258162Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-21T08:16:00.3258282Z       "requiredStages": [
2026-06-21T08:16:00.3258386Z         "impl",
2026-06-21T08:16:00.3258491Z         "unit",
2026-06-21T08:16:00.3258597Z         "int"
2026-06-21T08:16:00.3258700Z       ],
2026-06-21T08:16:00.3258806Z       "stages": {
2026-06-21T08:16:00.3259081Z         "doc": {
2026-06-21T08:16:00.3259202Z           "complete": false,
2026-06-21T08:16:00.3259316Z           "evidence": []
2026-06-21T08:16:00.3259522Z         },
2026-06-21T08:16:00.3259626Z         "impl": {
2026-06-21T08:16:00.3259740Z           "complete": true,
2026-06-21T08:16:00.3259855Z           "evidence": [
2026-06-21T08:16:00.3259959Z             {
2026-06-21T08:16:00.3260108Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-21T08:16:00.3260213Z               "line": 19
2026-06-21T08:16:00.3260316Z             },
2026-06-21T08:16:00.3260426Z             {
2026-06-21T08:16:00.3260563Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T08:16:00.3260671Z               "line": 21
2026-06-21T08:16:00.3260772Z             },
2026-06-21T08:16:00.3260878Z             {
2026-06-21T08:16:00.3261009Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T08:16:00.3261115Z               "line": 48
2026-06-21T08:16:00.3261220Z             },
2026-06-21T08:16:00.3261329Z             {
2026-06-21T08:16:00.3261459Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T08:16:00.3261572Z               "line": 174
2026-06-21T08:16:00.3261678Z             }
2026-06-21T08:16:00.3261788Z           ]
2026-06-21T08:16:00.3261892Z         },
2026-06-21T08:16:00.3261997Z         "int": {
2026-06-21T08:16:00.3262117Z           "complete": true,
2026-06-21T08:16:00.3262221Z           "evidence": [
2026-06-21T08:16:00.3262321Z             {
2026-06-21T08:16:00.3262493Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-21T08:16:00.3262602Z               "line": 10
2026-06-21T08:16:00.3262699Z             },
2026-06-21T08:16:00.3262807Z             {
2026-06-21T08:16:00.3262966Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-21T08:16:00.3263076Z               "line": 56
2026-06-21T08:16:00.3263178Z             }
2026-06-21T08:16:00.3263283Z           ]
2026-06-21T08:16:00.3263393Z         },
2026-06-21T08:16:00.3263500Z         "unit": {
2026-06-21T08:16:00.3263625Z           "complete": true,
2026-06-21T08:16:00.3263730Z           "evidence": [
2026-06-21T08:16:00.3263843Z             {
2026-06-21T08:16:00.3263973Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T08:16:00.3264093Z               "line": 228
2026-06-21T08:16:00.3264206Z             },
2026-06-21T08:16:00.3264312Z             {
2026-06-21T08:16:00.3264454Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T08:16:00.3264554Z               "line": 247
2026-06-21T08:16:00.3264665Z             },
2026-06-21T08:16:00.3264769Z             {
2026-06-21T08:16:00.3264913Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T08:16:00.3265026Z               "line": 270
2026-06-21T08:16:00.3265131Z             }
2026-06-21T08:16:00.3265237Z           ]
2026-06-21T08:16:00.3265337Z         }
2026-06-21T08:16:00.3265441Z       }
2026-06-21T08:16:00.3265533Z     },
2026-06-21T08:16:00.3265638Z     {
2026-06-21T08:16:00.3265764Z       "id": "REQ-MSG-4",
2026-06-21T08:16:00.3266673Z       "title": "Listener stream stdout emits EVENT envelope lines (sister-format, ADR-0001): parse the __REPLY_TO__ frame, pass pre-formed typed envelopes through verbatim (no double-wrap), compose <EVENT type=\"msg\" from=…> otherwise, chunk oversized lines into EVENT-PART",
2026-06-21T08:16:00.3266811Z       "requiredStages": [
2026-06-21T08:16:00.3266916Z         "impl",
2026-06-21T08:16:00.3267011Z         "unit",
2026-06-21T08:16:00.3267116Z         "int"
2026-06-21T08:16:00.3267217Z       ],
2026-06-21T08:16:00.3267326Z       "stages": {
2026-06-21T08:16:00.3267430Z         "doc": {
2026-06-21T08:16:00.3267546Z           "complete": false,
2026-06-21T08:16:00.3267650Z           "evidence": []
2026-06-21T08:16:00.3267750Z         },
2026-06-21T08:16:00.3267861Z         "impl": {
2026-06-21T08:16:00.3267965Z           "complete": true,
2026-06-21T08:16:00.3268080Z           "evidence": [
2026-06-21T08:16:00.3268190Z             {
2026-06-21T08:16:00.3268322Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T08:16:00.3268560Z               "line": 19
2026-06-21T08:16:00.3268755Z             },
2026-06-21T08:16:00.3268857Z             {
2026-06-21T08:16:00.3269118Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T08:16:00.3269251Z               "line": 46
2026-06-21T08:16:00.3269351Z             },
2026-06-21T08:16:00.3269457Z             {
2026-06-21T08:16:00.3269594Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3269714Z               "line": 532
2026-06-21T08:16:00.3269819Z             },
2026-06-21T08:16:00.3269918Z             {
2026-06-21T08:16:00.3270044Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3270152Z               "line": 3110
2026-06-21T08:16:00.3270267Z             }
2026-06-21T08:16:00.3270368Z           ]
2026-06-21T08:16:00.3270472Z         },
2026-06-21T08:16:00.3270577Z         "int": {
2026-06-21T08:16:00.3270693Z           "complete": true,
2026-06-21T08:16:00.3270815Z           "evidence": [
2026-06-21T08:16:00.3270919Z             {
2026-06-21T08:16:00.3271067Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-21T08:16:00.3271184Z               "line": 98
2026-06-21T08:16:00.3271298Z             },
2026-06-21T08:16:00.3271404Z             {
2026-06-21T08:16:00.3271546Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-21T08:16:00.3271671Z               "line": 128
2026-06-21T08:16:00.3271775Z             }
2026-06-21T08:16:00.3271874Z           ]
2026-06-21T08:16:00.3271981Z         },
2026-06-21T08:16:00.3272085Z         "unit": {
2026-06-21T08:16:00.3272203Z           "complete": true,
2026-06-21T08:16:00.3272314Z           "evidence": [
2026-06-21T08:16:00.3272414Z             {
2026-06-21T08:16:00.3272543Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T08:16:00.3272653Z               "line": 68
2026-06-21T08:16:00.3272758Z             },
2026-06-21T08:16:00.3272862Z             {
2026-06-21T08:16:00.3272987Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T08:16:00.3273101Z               "line": 79
2026-06-21T08:16:00.3273201Z             },
2026-06-21T08:16:00.3273316Z             {
2026-06-21T08:16:00.3273444Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T08:16:00.3273555Z               "line": 90
2026-06-21T08:16:00.3273664Z             },
2026-06-21T08:16:00.3273772Z             {
2026-06-21T08:16:00.3273901Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T08:16:00.3274027Z               "line": 151
2026-06-21T08:16:00.3274127Z             }
2026-06-21T08:16:00.3274237Z           ]
2026-06-21T08:16:00.3274328Z         }
2026-06-21T08:16:00.3274437Z       }
2026-06-21T08:16:00.3274543Z     },
2026-06-21T08:16:00.3274648Z     {
2026-06-21T08:16:00.3274770Z       "id": "REQ-MSG-5",
2026-06-21T08:16:00.3275530Z       "title": "user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user-msg (the user's authority); agent-family senders re-stamped to plain msg; identity-gated never payload-trusted (KH 7.3/7.5); wire-additive (N-1 receivers tolerate the new type)",
2026-06-21T08:16:00.3275658Z       "requiredStages": [
2026-06-21T08:16:00.3275768Z         "doc",
2026-06-21T08:16:00.3275874Z         "impl",
2026-06-21T08:16:00.3275982Z         "unit"
2026-06-21T08:16:00.3276083Z       ],
2026-06-21T08:16:00.3276193Z       "stages": {
2026-06-21T08:16:00.3276296Z         "doc": {
2026-06-21T08:16:00.3276415Z           "complete": true,
2026-06-21T08:16:00.3276534Z           "evidence": [
2026-06-21T08:16:00.3276637Z             {
2026-06-21T08:16:00.3276766Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.3276867Z               "line": 231
2026-06-21T08:16:00.3276965Z             }
2026-06-21T08:16:00.3277061Z           ]
2026-06-21T08:16:00.3277162Z         },
2026-06-21T08:16:00.3277266Z         "impl": {
2026-06-21T08:16:00.3277391Z           "complete": true,
2026-06-21T08:16:00.3277505Z           "evidence": [
2026-06-21T08:16:00.3277710Z             {
2026-06-21T08:16:00.3277857Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-21T08:16:00.3278064Z               "line": 60
2026-06-21T08:16:00.3278167Z             },
2026-06-21T08:16:00.3278277Z             {
2026-06-21T08:16:00.3278417Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.3278525Z               "line": 126
2026-06-21T08:16:00.3278625Z             },
2026-06-21T08:16:00.3278736Z             {
2026-06-21T08:16:00.3278868Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.3279037Z               "line": 135
2026-06-21T08:16:00.3279144Z             },
2026-06-21T08:16:00.3279253Z             {
2026-06-21T08:16:00.3279397Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.3279506Z               "line": 149
2026-06-21T08:16:00.3279611Z             },
2026-06-21T08:16:00.3279702Z             {
2026-06-21T08:16:00.3279830Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.3279955Z               "line": 178
2026-06-21T08:16:00.3280060Z             },
2026-06-21T08:16:00.3280169Z             {
2026-06-21T08:16:00.3280299Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3280412Z               "line": 2802
2026-06-21T08:16:00.3280502Z             }
2026-06-21T08:16:00.3280604Z           ]
2026-06-21T08:16:00.3280708Z         },
2026-06-21T08:16:00.3280813Z         "int": {
2026-06-21T08:16:00.3280933Z           "complete": true,
2026-06-21T08:16:00.3281041Z           "evidence": [
2026-06-21T08:16:00.3281151Z             {
2026-06-21T08:16:00.3281295Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-21T08:16:00.3281408Z               "line": 19
2026-06-21T08:16:00.3281512Z             }
2026-06-21T08:16:00.3281622Z           ]
2026-06-21T08:16:00.3281720Z         },
2026-06-21T08:16:00.3281820Z         "unit": {
2026-06-21T08:16:00.3281930Z           "complete": true,
2026-06-21T08:16:00.3282035Z           "evidence": [
2026-06-21T08:16:00.3282154Z             {
2026-06-21T08:16:00.3282302Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-21T08:16:00.3282411Z               "line": 192
2026-06-21T08:16:00.3282522Z             },
2026-06-21T08:16:00.3282622Z             {
2026-06-21T08:16:00.3282773Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-21T08:16:00.3282884Z               "line": 154
2026-06-21T08:16:00.3282989Z             },
2026-06-21T08:16:00.3283098Z             {
2026-06-21T08:16:00.3283232Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T08:16:00.3283346Z               "line": 122
2026-06-21T08:16:00.3283452Z             },
2026-06-21T08:16:00.3283556Z             {
2026-06-21T08:16:00.3283704Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.3283810Z               "line": 452
2026-06-21T08:16:00.3283918Z             },
2026-06-21T08:16:00.3284024Z             {
2026-06-21T08:16:00.3284172Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.3284280Z               "line": 501
2026-06-21T08:16:00.3284389Z             },
2026-06-21T08:16:00.3284480Z             {
2026-06-21T08:16:00.3287374Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.3287502Z               "line": 517
2026-06-21T08:16:00.3287607Z             },
2026-06-21T08:16:00.3287717Z             {
2026-06-21T08:16:00.3287869Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.3287984Z               "line": 536
2026-06-21T08:16:00.3288084Z             },
2026-06-21T08:16:00.3288188Z             {
2026-06-21T08:16:00.3288318Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3288427Z               "line": 7660
2026-06-21T08:16:00.3288532Z             }
2026-06-21T08:16:00.3288638Z           ]
2026-06-21T08:16:00.3288742Z         }
2026-06-21T08:16:00.3288847Z       }
2026-06-21T08:16:00.3289037Z     },
2026-06-21T08:16:00.3289142Z     {
2026-06-21T08:16:00.3289248Z       "id": "REQ-MSG-6",
2026-06-21T08:16:00.3291555Z       "title": "cross-node Gateway user-msg honored via advertised endpoint_type: a user-msg from a Gateway-typed origin survives the receive_wan funnel as user-msg (vs the fail-closed re-stamp), keyed on the QUIC-handshake-proven origin node (never wire `from`). Trust boundary = subnet membership (operator-ratified 2026-06-13); no defense against an in-subnet member forging the type. Instance.endpoint_type is an additive serde-default field extending REQ-INST-7's data model. Absent/unknown type → re-stamp (N-1 rollout grace)",
2026-06-21T08:16:00.3291779Z       "requiredStages": [
2026-06-21T08:16:00.3291884Z         "doc",
2026-06-21T08:16:00.3291992Z         "impl",
2026-06-21T08:16:00.3292097Z         "unit"
2026-06-21T08:16:00.3292196Z       ],
2026-06-21T08:16:00.3292304Z       "stages": {
2026-06-21T08:16:00.3292414Z         "doc": {
2026-06-21T08:16:00.3292534Z           "complete": true,
2026-06-21T08:16:00.3292633Z           "evidence": [
2026-06-21T08:16:00.3292729Z             {
2026-06-21T08:16:00.3292867Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.3292976Z               "line": 234
2026-06-21T08:16:00.3293087Z             }
2026-06-21T08:16:00.3293196Z           ]
2026-06-21T08:16:00.3293300Z         },
2026-06-21T08:16:00.3293407Z         "impl": {
2026-06-21T08:16:00.3293530Z           "complete": true,
2026-06-21T08:16:00.3293634Z           "evidence": [
2026-06-21T08:16:00.3293736Z             {
2026-06-21T08:16:00.3293896Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.3294007Z               "line": 177
2026-06-21T08:16:00.3294098Z             },
2026-06-21T08:16:00.3294202Z             {
2026-06-21T08:16:00.3294360Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.3294469Z               "line": 428
2026-06-21T08:16:00.3294579Z             },
2026-06-21T08:16:00.3294680Z             {
2026-06-21T08:16:00.3294836Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.3294949Z               "line": 451
2026-06-21T08:16:00.3295054Z             },
2026-06-21T08:16:00.3295162Z             {
2026-06-21T08:16:00.3295309Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-21T08:16:00.3295420Z               "line": 89
2026-06-21T08:16:00.3295514Z             },
2026-06-21T08:16:00.3295619Z             {
2026-06-21T08:16:00.3295763Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.3295876Z               "line": 155
2026-06-21T08:16:00.3295974Z             }
2026-06-21T08:16:00.3296073Z           ]
2026-06-21T08:16:00.3296182Z         },
2026-06-21T08:16:00.3296288Z         "int": {
2026-06-21T08:16:00.3296406Z           "complete": false,
2026-06-21T08:16:00.3296520Z           "evidence": []
2026-06-21T08:16:00.3296627Z         },
2026-06-21T08:16:00.3296740Z         "unit": {
2026-06-21T08:16:00.3296854Z           "complete": true,
2026-06-21T08:16:00.3296970Z           "evidence": [
2026-06-21T08:16:00.3297059Z             {
2026-06-21T08:16:00.3297213Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.3297337Z               "line": 1746
2026-06-21T08:16:00.3297444Z             },
2026-06-21T08:16:00.3297535Z             {
2026-06-21T08:16:00.3297668Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-21T08:16:00.3297775Z               "line": 219
2026-06-21T08:16:00.3297881Z             }
2026-06-21T08:16:00.3297987Z           ]
2026-06-21T08:16:00.3298086Z         }
2026-06-21T08:16:00.3298191Z       }
2026-06-21T08:16:00.3298296Z     },
2026-06-21T08:16:00.3298396Z     {
2026-06-21T08:16:00.3298526Z       "id": "REQ-MSG-ENVELOPE",
2026-06-21T08:16:00.3302247Z       "title": "The <EVENT type=\"msg\" from=…>body</EVENT> envelope (spt-proto::event, the ADR-0001 grammar) is the SOLE canonical arriving-message format at EVERY harness arriving-message surface on an AGENT perch — api listen AND api poll/worker-poll, byte-identical (reverses REQ-MSG-4's 'hook drains keep the raw frame by contract'). SCOPE CARVE-OUT: the shell-command relay (api poll <shell-id> --link, cmd_poll_shell) is a distinct internal transport carrying RAW MAC'd stamped frames the shell child consumes verbatim — NOT an arriving-message surface, deliberately EXEMPT from <EVENT> composition (notify_shell_e2e guards this boundary). __REPLY_TO__ — mis-elevated during the clean-room port to a fake ADR-0001 'stable wire format' (spt-msg/wire.rs, lib.rs) — is REMOVED entirely (spool format_row, the spt-msg TCP frame, emit parse_frame); (from, body) carried structurally, <EVENT> composed once at the delivery boundary. No legacy sister-interop (spt-core never required it). Reply-correlation rebinds onto the structural from / <EVENT from=…> attribute (ADR-0009 access-gate + ADR-0012 Psyche/spt-live reply-target). Self-delimiting by construction → finding F-002 (non-self-delimiting multi-message poll) dissolves. ADR-0020.",
2026-06-21T08:16:00.3302609Z       "requiredStages": [
2026-06-21T08:16:00.3302714Z         "doc",
2026-06-21T08:16:00.3302817Z         "impl",
2026-06-21T08:16:00.3302944Z         "unit",
2026-06-21T08:16:00.3303051Z         "int"
2026-06-21T08:16:00.3303150Z       ],
2026-06-21T08:16:00.3303279Z       "stages": {
2026-06-21T08:16:00.3303384Z         "doc": {
2026-06-21T08:16:00.3303507Z           "complete": true,
2026-06-21T08:16:00.3303623Z           "evidence": [
2026-06-21T08:16:00.3303727Z             {
2026-06-21T08:16:00.3303986Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
2026-06-21T08:16:00.3304105Z               "line": 47
2026-06-21T08:16:00.3304209Z             }
2026-06-21T08:16:00.3304315Z           ]
2026-06-21T08:16:00.3304414Z         },
2026-06-21T08:16:00.3304528Z         "impl": {
2026-06-21T08:16:00.3304644Z           "complete": true,
2026-06-21T08:16:00.3304757Z           "evidence": [
2026-06-21T08:16:00.3304853Z             {
2026-06-21T08:16:00.3304996Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T08:16:00.3305110Z               "line": 20
2026-06-21T08:16:00.3305221Z             },
2026-06-21T08:16:00.3305325Z             {
2026-06-21T08:16:00.3305452Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T08:16:00.3305572Z               "line": 33
2026-06-21T08:16:00.3305675Z             },
2026-06-21T08:16:00.3305774Z             {
2026-06-21T08:16:00.3305908Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T08:16:00.3306022Z               "line": 47
2026-06-21T08:16:00.3306136Z             },
2026-06-21T08:16:00.3306242Z             {
2026-06-21T08:16:00.3306370Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T08:16:00.3306495Z               "line": 58
2026-06-21T08:16:00.3306590Z             },
2026-06-21T08:16:00.3306699Z             {
2026-06-21T08:16:00.3306828Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-21T08:16:00.3306938Z               "line": 14
2026-06-21T08:16:00.3307043Z             },
2026-06-21T08:16:00.3307143Z             {
2026-06-21T08:16:00.3307295Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-21T08:16:00.3307449Z               "line": 27
2026-06-21T08:16:00.3307558Z             },
2026-06-21T08:16:00.3307667Z             {
2026-06-21T08:16:00.3307797Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-21T08:16:00.3307915Z               "line": 40
2026-06-21T08:16:00.3308014Z             },
2026-06-21T08:16:00.3308119Z             {
2026-06-21T08:16:00.3308265Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T08:16:00.3308383Z               "line": 92
2026-06-21T08:16:00.3308479Z             },
2026-06-21T08:16:00.3308580Z             {
2026-06-21T08:16:00.3308732Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T08:16:00.3308843Z               "line": 143
2026-06-21T08:16:00.3309027Z             },
2026-06-21T08:16:00.3309133Z             {
2026-06-21T08:16:00.3309271Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T08:16:00.3309386Z               "line": 216
2026-06-21T08:16:00.3309486Z             },
2026-06-21T08:16:00.3309695Z             {
2026-06-21T08:16:00.3309829Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3310045Z               "line": 533
2026-06-21T08:16:00.3310148Z             },
2026-06-21T08:16:00.3310253Z             {
2026-06-21T08:16:00.3310397Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T08:16:00.3310506Z               "line": 78
2026-06-21T08:16:00.3310606Z             },
2026-06-21T08:16:00.3310707Z             {
2026-06-21T08:16:00.3310839Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3310948Z               "line": 3111
2026-06-21T08:16:00.3311049Z             }
2026-06-21T08:16:00.3311154Z           ]
2026-06-21T08:16:00.3311253Z         },
2026-06-21T08:16:00.3311369Z         "int": {
2026-06-21T08:16:00.3311487Z           "complete": true,
2026-06-21T08:16:00.3311611Z           "evidence": [
2026-06-21T08:16:00.3311712Z             {
2026-06-21T08:16:00.3311868Z               "path": "crates/spt/tests/poll_envelope_e2e.rs",
2026-06-21T08:16:00.3311988Z               "line": 15
2026-06-21T08:16:00.3312092Z             }
2026-06-21T08:16:00.3312207Z           ]
2026-06-21T08:16:00.3312303Z         },
2026-06-21T08:16:00.3312412Z         "unit": {
2026-06-21T08:16:00.3312526Z           "complete": true,
2026-06-21T08:16:00.3312637Z           "evidence": [
2026-06-21T08:16:00.3312741Z             {
2026-06-21T08:16:00.3312880Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T08:16:00.3312981Z               "line": 102
2026-06-21T08:16:00.3313088Z             },
2026-06-21T08:16:00.3313192Z             {
2026-06-21T08:16:00.3313331Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T08:16:00.3313443Z               "line": 137
2026-06-21T08:16:00.3313539Z             },
2026-06-21T08:16:00.3313639Z             {
2026-06-21T08:16:00.3313777Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-21T08:16:00.3313887Z               "line": 98
2026-06-21T08:16:00.3313997Z             },
2026-06-21T08:16:00.3314101Z             {
2026-06-21T08:16:00.3314222Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-21T08:16:00.3314336Z               "line": 106
2026-06-21T08:16:00.3314440Z             },
2026-06-21T08:16:00.3314536Z             {
2026-06-21T08:16:00.3314665Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-21T08:16:00.3314769Z               "line": 113
2026-06-21T08:16:00.3314870Z             },
2026-06-21T08:16:00.3314969Z             {
2026-06-21T08:16:00.3315107Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-21T08:16:00.3315204Z               "line": 122
2026-06-21T08:16:00.3315302Z             }
2026-06-21T08:16:00.3315403Z           ]
2026-06-21T08:16:00.3315505Z         }
2026-06-21T08:16:00.3315603Z       }
2026-06-21T08:16:00.3315713Z     },
2026-06-21T08:16:00.3315819Z     {
2026-06-21T08:16:00.3315965Z       "id": "REQ-MSG-IDLE-TRANSLATION-BINARY",
2026-06-21T08:16:00.3320943Z       "title": "spt-hosted idle message delivery via an adapter TRANSLATION BINARY (ADR-0022). New opt-in manifest section `[message-idle-translation-binary]` = a TABLE carrying a `path` scalar (doyle OPT-B ruling: modeled as a table, not a bare top-level scalar, so a preceding section cannot silently absorb it + N+1 extensible; spt-core does NOT deny_unknown_fields, so a future key degrades gracefully); spt-core LIFECYCLE-manages it (spawn when the endpoint comes up, terminate when it goes down). The binary is a PURE stdin→stdout filter; spt-core owns EVERY PTY write. stdin (JSON-lines): `{type:\"init\",endpoint_id,node}` first · `{type:\"event\",envelope:\"<EVENT…>\"}` per inbound message (ADR-0020 envelope) · `{type:\"input\"}` content-free ping on each operator keystroke (binary tracks user-idle for its own idle-gated buffering; PTY input content NOT duplicated). stdout (JSON-lines): keystroke-commands `{key:…}`/`{delay_ms:…}`/`{text:…}` (extensible). spt-core applies the emitted sequence to the broker PTY ATOMICALLY (the W1 coordination — REQ-HAZARD-INJECT-CONTROL-COEXIST). The daemon poll feed is the ONE idle substrate for both topologies (Q1=A): harness-hosted consumer = the Monitor child, spt-hosted consumer = this binary; spt-core PREFERS a perch's poll listener if one exists (so spt-hosted can run a listener AND keep `spt rc`). Idle-only; busy/mid-turn = adapter hook-injection. Closes the current grounding gap: `api bind` registers no listener port → a listener-less spt-hosted perch SPOOLS inbound (only spooling+adapter-poll works today) → this delivers real inbound into the PTY. The v0.11.0 raw inject is the degenerate `{text:payload}{key:enter}` case. (v0.13.0)",
2026-06-21T08:16:00.3321380Z       "requiredStages": [
2026-06-21T08:16:00.3321484Z         "doc",
2026-06-21T08:16:00.3321594Z         "impl",
2026-06-21T08:16:00.3321700Z         "unit",
2026-06-21T08:16:00.3321803Z         "int"
2026-06-21T08:16:00.3321905Z       ],
2026-06-21T08:16:00.3322015Z       "stages": {
2026-06-21T08:16:00.3322108Z         "doc": {
2026-06-21T08:16:00.3322234Z           "complete": true,
2026-06-21T08:16:00.3322358Z           "evidence": [
2026-06-21T08:16:00.3322467Z             {
2026-06-21T08:16:00.3322643Z               "path": "docs-site/src/harness-contract/manifest.md",
2026-06-21T08:16:00.3322748Z               "line": 277
2026-06-21T08:16:00.3322859Z             },
2026-06-21T08:16:00.3322958Z             {
2026-06-21T08:16:00.3323086Z               "path": "docs/MANIFEST.md",
2026-06-21T08:16:00.3323192Z               "line": 198
2026-06-21T08:16:00.3323296Z             }
2026-06-21T08:16:00.3323396Z           ]
2026-06-21T08:16:00.3323507Z         },
2026-06-21T08:16:00.3323616Z         "impl": {
2026-06-21T08:16:00.3323739Z           "complete": true,
2026-06-21T08:16:00.3323844Z           "evidence": [
2026-06-21T08:16:00.3323938Z             {
2026-06-21T08:16:00.3324094Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.3324204Z               "line": 1025
2026-06-21T08:16:00.3324313Z             },
2026-06-21T08:16:00.3324418Z             {
2026-06-21T08:16:00.3324572Z               "path": "crates/spt-daemon/src/translation.rs",
2026-06-21T08:16:00.3324680Z               "line": 23
2026-06-21T08:16:00.3324791Z             },
2026-06-21T08:16:00.3324901Z             {
2026-06-21T08:16:00.3325048Z               "path": "crates/spt-daemon/src/translation.rs",
2026-06-21T08:16:00.3325158Z               "line": 91
2026-06-21T08:16:00.3325267Z             },
2026-06-21T08:16:00.3325372Z             {
2026-06-21T08:16:00.3325515Z               "path": "crates/spt-daemon/src/translation.rs",
2026-06-21T08:16:00.3325629Z               "line": 239
2026-06-21T08:16:00.3325731Z             },
2026-06-21T08:16:00.3325839Z             {
2026-06-21T08:16:00.3325997Z               "path": "crates/spt-daemon/src/translation.rs",
2026-06-21T08:16:00.3326154Z               "line": 287
2026-06-21T08:16:00.3326268Z             },
2026-06-21T08:16:00.3326370Z             {
2026-06-21T08:16:00.3326516Z               "path": "crates/spt-daemon/src/translation.rs",
2026-06-21T08:16:00.3326629Z               "line": 311
2026-06-21T08:16:00.3326735Z             },
2026-06-21T08:16:00.3326842Z             {
2026-06-21T08:16:00.3327000Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3327105Z               "line": 60
2026-06-21T08:16:00.3327214Z             },
2026-06-21T08:16:00.3327310Z             {
2026-06-21T08:16:00.3327463Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3327585Z               "line": 889
2026-06-21T08:16:00.3327692Z             }
2026-06-21T08:16:00.3327796Z           ]
2026-06-21T08:16:00.3327896Z         },
2026-06-21T08:16:00.3328007Z         "int": {
2026-06-21T08:16:00.3328120Z           "complete": true,
2026-06-21T08:16:00.3328229Z           "evidence": [
2026-06-21T08:16:00.3328336Z             {
2026-06-21T08:16:00.3328506Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
2026-06-21T08:16:00.3328622Z               "line": 1089
2026-06-21T08:16:00.3328725Z             },
2026-06-21T08:16:00.3328922Z             {
2026-06-21T08:16:00.3329182Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
2026-06-21T08:16:00.3329385Z               "line": 1194
2026-06-21T08:16:00.3329494Z             },
2026-06-21T08:16:00.3329600Z             {
2026-06-21T08:16:00.3329771Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
2026-06-21T08:16:00.3329881Z               "line": 1262
2026-06-21T08:16:00.3329986Z             },
2026-06-21T08:16:00.3330090Z             {
2026-06-21T08:16:00.3330258Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
2026-06-21T08:16:00.3330363Z               "line": 1355
2026-06-21T08:16:00.3330462Z             }
2026-06-21T08:16:00.3330564Z           ]
2026-06-21T08:16:00.3330653Z         },
2026-06-21T08:16:00.3330763Z         "unit": {
2026-06-21T08:16:00.3330874Z           "complete": true,
2026-06-21T08:16:00.3330997Z           "evidence": [
2026-06-21T08:16:00.3331101Z             {
2026-06-21T08:16:00.3331254Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T08:16:00.3331383Z               "line": 270
2026-06-21T08:16:00.3331489Z             },
2026-06-21T08:16:00.3331597Z             {
2026-06-21T08:16:00.3331751Z               "path": "crates/spt-daemon/src/translation.rs",
2026-06-21T08:16:00.3331861Z               "line": 350
2026-06-21T08:16:00.3331969Z             },
2026-06-21T08:16:00.3332068Z             {
2026-06-21T08:16:00.3332213Z               "path": "crates/spt-daemon/src/translation.rs",
2026-06-21T08:16:00.3332321Z               "line": 381
2026-06-21T08:16:00.3332426Z             },
2026-06-21T08:16:00.3332532Z             {
2026-06-21T08:16:00.3332678Z               "path": "crates/spt-daemon/src/translation.rs",
2026-06-21T08:16:00.3332785Z               "line": 411
2026-06-21T08:16:00.3332884Z             },
2026-06-21T08:16:00.3332988Z             {
2026-06-21T08:16:00.3333137Z               "path": "crates/spt-daemon/src/translation.rs",
2026-06-21T08:16:00.3333261Z               "line": 440
2026-06-21T08:16:00.3333366Z             },
2026-06-21T08:16:00.3333466Z             {
2026-06-21T08:16:00.3333614Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3333725Z               "line": 1181
2026-06-21T08:16:00.3333828Z             }
2026-06-21T08:16:00.3333928Z           ]
2026-06-21T08:16:00.3334044Z         }
2026-06-21T08:16:00.3334147Z       }
2026-06-21T08:16:00.3334251Z     },
2026-06-21T08:16:00.3334356Z     {
2026-06-21T08:16:00.3334465Z       "id": "REQ-NET-1",
2026-06-21T08:16:00.3334678Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-21T08:16:00.3334794Z       "requiredStages": [
2026-06-21T08:16:00.3334902Z         "impl",
2026-06-21T08:16:00.3334998Z         "unit",
2026-06-21T08:16:00.3335094Z         "int"
2026-06-21T08:16:00.3335188Z       ],
2026-06-21T08:16:00.3335293Z       "stages": {
2026-06-21T08:16:00.3335399Z         "doc": {
2026-06-21T08:16:00.3335527Z           "complete": false,
2026-06-21T08:16:00.3335633Z           "evidence": []
2026-06-21T08:16:00.3335733Z         },
2026-06-21T08:16:00.3335851Z         "impl": {
2026-06-21T08:16:00.3335962Z           "complete": true,
2026-06-21T08:16:00.3336066Z           "evidence": [
2026-06-21T08:16:00.3336175Z             {
2026-06-21T08:16:00.3336319Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T08:16:00.3336437Z               "line": 54
2026-06-21T08:16:00.3336543Z             },
2026-06-21T08:16:00.3336653Z             {
2026-06-21T08:16:00.3336796Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T08:16:00.3336901Z               "line": 594
2026-06-21T08:16:00.3337001Z             },
2026-06-21T08:16:00.3337104Z             {
2026-06-21T08:16:00.3337257Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-21T08:16:00.3337370Z               "line": 130
2026-06-21T08:16:00.3337469Z             },
2026-06-21T08:16:00.3337579Z             {
2026-06-21T08:16:00.3337831Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T08:16:00.3337951Z               "line": 97
2026-06-21T08:16:00.3338122Z             },
2026-06-21T08:16:00.3338223Z             {
2026-06-21T08:16:00.3338371Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T08:16:00.3338485Z               "line": 159
2026-06-21T08:16:00.3338581Z             },
2026-06-21T08:16:00.3338681Z             {
2026-06-21T08:16:00.3338834Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T08:16:00.3339024Z               "line": 175
2026-06-21T08:16:00.3339134Z             },
2026-06-21T08:16:00.3339239Z             {
2026-06-21T08:16:00.3339371Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T08:16:00.3339487Z               "line": 190
2026-06-21T08:16:00.3339586Z             },
2026-06-21T08:16:00.3339695Z             {
2026-06-21T08:16:00.3339838Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T08:16:00.3339955Z               "line": 271
2026-06-21T08:16:00.3340059Z             },
2026-06-21T08:16:00.3340160Z             {
2026-06-21T08:16:00.3340321Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T08:16:00.3340427Z               "line": 306
2026-06-21T08:16:00.3340523Z             },
2026-06-21T08:16:00.3340617Z             {
2026-06-21T08:16:00.3340771Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T08:16:00.3340890Z               "line": 312
2026-06-21T08:16:00.3340989Z             },
2026-06-21T08:16:00.3341095Z             {
2026-06-21T08:16:00.3341233Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T08:16:00.3341347Z               "line": 318
2026-06-21T08:16:00.3341439Z             },
2026-06-21T08:16:00.3341548Z             {
2026-06-21T08:16:00.3341696Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T08:16:00.3341800Z               "line": 334
2026-06-21T08:16:00.3341910Z             },
2026-06-21T08:16:00.3342016Z             {
2026-06-21T08:16:00.3342166Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T08:16:00.3342277Z               "line": 354
2026-06-21T08:16:00.3342388Z             },
2026-06-21T08:16:00.3342486Z             {
2026-06-21T08:16:00.3342623Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-21T08:16:00.3342724Z               "line": 35
2026-06-21T08:16:00.3342824Z             },
2026-06-21T08:16:00.3342933Z             {
2026-06-21T08:16:00.3343082Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-21T08:16:00.3343191Z               "line": 85
2026-06-21T08:16:00.3343301Z             },
2026-06-21T08:16:00.3343406Z             {
2026-06-21T08:16:00.3343554Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T08:16:00.3343665Z               "line": 138
2026-06-21T08:16:00.3343768Z             },
2026-06-21T08:16:00.3343878Z             {
2026-06-21T08:16:00.3344012Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3344126Z               "line": 2953
2026-06-21T08:16:00.3344231Z             },
2026-06-21T08:16:00.3344346Z             {
2026-06-21T08:16:00.3344488Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T08:16:00.3344604Z               "line": 17
2026-06-21T08:16:00.3344712Z             }
2026-06-21T08:16:00.3344816Z           ]
2026-06-21T08:16:00.3344921Z         },
2026-06-21T08:16:00.3345025Z         "int": {
2026-06-21T08:16:00.3345152Z           "complete": true,
2026-06-21T08:16:00.3345258Z           "evidence": [
2026-06-21T08:16:00.3345368Z             {
2026-06-21T08:16:00.3345529Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T08:16:00.3345625Z               "line": 341
2026-06-21T08:16:00.3345734Z             },
2026-06-21T08:16:00.3345824Z             {
2026-06-21T08:16:00.3345973Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.3346087Z               "line": 675
2026-06-21T08:16:00.3346193Z             },
2026-06-21T08:16:00.3346402Z             {
2026-06-21T08:16:00.3346550Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.3346759Z               "line": 973
2026-06-21T08:16:00.3346856Z             }
2026-06-21T08:16:00.3346965Z           ]
2026-06-21T08:16:00.3347064Z         },
2026-06-21T08:16:00.3347180Z         "unit": {
2026-06-21T08:16:00.3347303Z           "complete": true,
2026-06-21T08:16:00.3347413Z           "evidence": [
2026-06-21T08:16:00.3347519Z             {
2026-06-21T08:16:00.3347669Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T08:16:00.3347779Z               "line": 651
2026-06-21T08:16:00.3347883Z             },
2026-06-21T08:16:00.3347995Z             {
2026-06-21T08:16:00.3348139Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T08:16:00.3348254Z               "line": 686
2026-06-21T08:16:00.3348348Z             },
2026-06-21T08:16:00.3348449Z             {
2026-06-21T08:16:00.3348602Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T08:16:00.3348720Z               "line": 940
2026-06-21T08:16:00.3348826Z             },
2026-06-21T08:16:00.3348977Z             {
2026-06-21T08:16:00.3349117Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-21T08:16:00.3349231Z               "line": 201
2026-06-21T08:16:00.3349336Z             },
2026-06-21T08:16:00.3349437Z             {
2026-06-21T08:16:00.3349584Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T08:16:00.3349699Z               "line": 442
2026-06-21T08:16:00.3349795Z             },
2026-06-21T08:16:00.3349898Z             {
2026-06-21T08:16:00.3350043Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T08:16:00.3350151Z               "line": 456
2026-06-21T08:16:00.3350260Z             },
2026-06-21T08:16:00.3350360Z             {
2026-06-21T08:16:00.3350501Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T08:16:00.3350615Z               "line": 475
2026-06-21T08:16:00.3350715Z             },
2026-06-21T08:16:00.3350830Z             {
2026-06-21T08:16:00.3350977Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-21T08:16:00.3351097Z               "line": 120
2026-06-21T08:16:00.3351206Z             },
2026-06-21T08:16:00.3351307Z             {
2026-06-21T08:16:00.3351450Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-21T08:16:00.3351559Z               "line": 163
2026-06-21T08:16:00.3351660Z             },
2026-06-21T08:16:00.3351764Z             {
2026-06-21T08:16:00.3351907Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T08:16:00.3352023Z               "line": 530
2026-06-21T08:16:00.3352127Z             },
2026-06-21T08:16:00.3352227Z             {
2026-06-21T08:16:00.3352347Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T08:16:00.3352460Z               "line": 616
2026-06-21T08:16:00.3352566Z             },
2026-06-21T08:16:00.3352676Z             {
2026-06-21T08:16:00.3352818Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T08:16:00.3352929Z               "line": 1006
2026-06-21T08:16:00.3353037Z             }
2026-06-21T08:16:00.3353141Z           ]
2026-06-21T08:16:00.3353246Z         }
2026-06-21T08:16:00.3353347Z       }
2026-06-21T08:16:00.3353451Z     },
2026-06-21T08:16:00.3353556Z     {
2026-06-21T08:16:00.3353666Z       "id": "REQ-NET-2",
2026-06-21T08:16:00.3353866Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-21T08:16:00.3353985Z       "requiredStages": [
2026-06-21T08:16:00.3354085Z         "impl"
2026-06-21T08:16:00.3354186Z       ],
2026-06-21T08:16:00.3354295Z       "stages": {
2026-06-21T08:16:00.3354404Z         "doc": {
2026-06-21T08:16:00.3354520Z           "complete": false,
2026-06-21T08:16:00.3354638Z           "evidence": []
2026-06-21T08:16:00.3354743Z         },
2026-06-21T08:16:00.3354849Z         "impl": {
2026-06-21T08:16:00.3354967Z           "complete": true,
2026-06-21T08:16:00.3355082Z           "evidence": [
2026-06-21T08:16:00.3355296Z             {
2026-06-21T08:16:00.3355443Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-21T08:16:00.3355675Z               "line": 57
2026-06-21T08:16:00.3355784Z             },
2026-06-21T08:16:00.3355885Z             {
2026-06-21T08:16:00.3356036Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T08:16:00.3356152Z               "line": 71
2026-06-21T08:16:00.3356266Z             },
2026-06-21T08:16:00.3356370Z             {
2026-06-21T08:16:00.3356514Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T08:16:00.3356618Z               "line": 81
2026-06-21T08:16:00.3356724Z             },
2026-06-21T08:16:00.3356819Z             {
2026-06-21T08:16:00.3356966Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T08:16:00.3357092Z               "line": 159
2026-06-21T08:16:00.3357196Z             },
2026-06-21T08:16:00.3357305Z             {
2026-06-21T08:16:00.3357449Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T08:16:00.3357577Z               "line": 175
2026-06-21T08:16:00.3357683Z             },
2026-06-21T08:16:00.3357792Z             {
2026-06-21T08:16:00.3357949Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T08:16:00.3358056Z               "line": 190
2026-06-21T08:16:00.3358154Z             }
2026-06-21T08:16:00.3358253Z           ]
2026-06-21T08:16:00.3358353Z         },
2026-06-21T08:16:00.3358462Z         "int": {
2026-06-21T08:16:00.3358589Z           "complete": false,
2026-06-21T08:16:00.3358709Z           "evidence": []
2026-06-21T08:16:00.3358805Z         },
2026-06-21T08:16:00.3358913Z         "unit": {
2026-06-21T08:16:00.3359109Z           "complete": true,
2026-06-21T08:16:00.3359227Z           "evidence": [
2026-06-21T08:16:00.3359320Z             {
2026-06-21T08:16:00.3359486Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-21T08:16:00.3359605Z               "line": 402
2026-06-21T08:16:00.3359701Z             }
2026-06-21T08:16:00.3359810Z           ]
2026-06-21T08:16:00.3359905Z         }
2026-06-21T08:16:00.3360011Z       }
2026-06-21T08:16:00.3360110Z     },
2026-06-21T08:16:00.3360220Z     {
2026-06-21T08:16:00.3360340Z       "id": "REQ-NET-3",
2026-06-21T08:16:00.3360550Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-21T08:16:00.3360669Z       "requiredStages": [
2026-06-21T08:16:00.3360777Z         "impl",
2026-06-21T08:16:00.3360881Z         "unit"
2026-06-21T08:16:00.3360982Z       ],
2026-06-21T08:16:00.3361094Z       "stages": {
2026-06-21T08:16:00.3361203Z         "doc": {
2026-06-21T08:16:00.3361314Z           "complete": false,
2026-06-21T08:16:00.3361437Z           "evidence": []
2026-06-21T08:16:00.3361528Z         },
2026-06-21T08:16:00.3361643Z         "impl": {
2026-06-21T08:16:00.3361752Z           "complete": true,
2026-06-21T08:16:00.3361872Z           "evidence": [
2026-06-21T08:16:00.3361972Z             {
2026-06-21T08:16:00.3362109Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T08:16:00.3362225Z               "line": 39
2026-06-21T08:16:00.3362333Z             },
2026-06-21T08:16:00.3362448Z             {
2026-06-21T08:16:00.3362578Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T08:16:00.3362697Z               "line": 182
2026-06-21T08:16:00.3362806Z             },
2026-06-21T08:16:00.3362907Z             {
2026-06-21T08:16:00.3363058Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T08:16:00.3363169Z               "line": 333
2026-06-21T08:16:00.3363283Z             },
2026-06-21T08:16:00.3363387Z             {
2026-06-21T08:16:00.3363532Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-21T08:16:00.3363635Z               "line": 36
2026-06-21T08:16:00.3363739Z             },
2026-06-21T08:16:00.3363845Z             {
2026-06-21T08:16:00.3364006Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.3364116Z               "line": 158
2026-06-21T08:16:00.3364221Z             },
2026-06-21T08:16:00.3364431Z             {
2026-06-21T08:16:00.3364589Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.3364785Z               "line": 238
2026-06-21T08:16:00.3364888Z             },
2026-06-21T08:16:00.3364988Z             {
2026-06-21T08:16:00.3365138Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.3365251Z               "line": 259
2026-06-21T08:16:00.3365361Z             },
2026-06-21T08:16:00.3365466Z             {
2026-06-21T08:16:00.3365603Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.3365714Z               "line": 317
2026-06-21T08:16:00.3365837Z             },
2026-06-21T08:16:00.3365979Z             {
2026-06-21T08:16:00.3366131Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.3366249Z               "line": 336
2026-06-21T08:16:00.3366363Z             },
2026-06-21T08:16:00.3366460Z             {
2026-06-21T08:16:00.3366601Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.3366722Z               "line": 374
2026-06-21T08:16:00.3366831Z             },
2026-06-21T08:16:00.3366939Z             {
2026-06-21T08:16:00.3367088Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.3367207Z               "line": 419
2026-06-21T08:16:00.3367313Z             },
2026-06-21T08:16:00.3367417Z             {
2026-06-21T08:16:00.3367565Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.3367671Z               "line": 432
2026-06-21T08:16:00.3367780Z             },
2026-06-21T08:16:00.3367884Z             {
2026-06-21T08:16:00.3368037Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-21T08:16:00.3368147Z               "line": 29
2026-06-21T08:16:00.3368252Z             },
2026-06-21T08:16:00.3368357Z             {
2026-06-21T08:16:00.3368505Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-21T08:16:00.3368620Z               "line": 72
2026-06-21T08:16:00.3368733Z             },
2026-06-21T08:16:00.3368836Z             {
2026-06-21T08:16:00.3369073Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-21T08:16:00.3369240Z               "line": 123
2026-06-21T08:16:00.3369346Z             }
2026-06-21T08:16:00.3369450Z           ]
2026-06-21T08:16:00.3369560Z         },
2026-06-21T08:16:00.3369665Z         "int": {
2026-06-21T08:16:00.3369788Z           "complete": false,
2026-06-21T08:16:00.3369894Z           "evidence": []
2026-06-21T08:16:00.3369999Z         },
2026-06-21T08:16:00.3370103Z         "unit": {
2026-06-21T08:16:00.3370223Z           "complete": true,
2026-06-21T08:16:00.3370332Z           "evidence": [
2026-06-21T08:16:00.3370427Z             {
2026-06-21T08:16:00.3370585Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-21T08:16:00.3370694Z               "line": 223
2026-06-21T08:16:00.3370800Z             },
2026-06-21T08:16:00.3370900Z             {
2026-06-21T08:16:00.3371048Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-21T08:16:00.3371173Z               "line": 351
2026-06-21T08:16:00.3371276Z             },
2026-06-21T08:16:00.3371385Z             {
2026-06-21T08:16:00.3371527Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-21T08:16:00.3371640Z               "line": 504
2026-06-21T08:16:00.3371730Z             },
2026-06-21T08:16:00.3371835Z             {
2026-06-21T08:16:00.3371983Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-21T08:16:00.3372092Z               "line": 93
2026-06-21T08:16:00.3372199Z             },
2026-06-21T08:16:00.3372307Z             {
2026-06-21T08:16:00.3372447Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-21T08:16:00.3372560Z               "line": 142
2026-06-21T08:16:00.3372664Z             },
2026-06-21T08:16:00.3372771Z             {
2026-06-21T08:16:00.3372908Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-21T08:16:00.3373018Z               "line": 315
2026-06-21T08:16:00.3373119Z             },
2026-06-21T08:16:00.3373347Z             {
2026-06-21T08:16:00.3373500Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-21T08:16:00.3373696Z               "line": 355
2026-06-21T08:16:00.3373801Z             },
2026-06-21T08:16:00.3373905Z             {
2026-06-21T08:16:00.3374049Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-21T08:16:00.3374162Z               "line": 494
2026-06-21T08:16:00.3374275Z             }
2026-06-21T08:16:00.3374385Z           ]
2026-06-21T08:16:00.3374482Z         }
2026-06-21T08:16:00.3374585Z       }
2026-06-21T08:16:00.3374686Z     },
2026-06-21T08:16:00.3374786Z     {
2026-06-21T08:16:00.3374909Z       "id": "REQ-NODE-IDENTITY",
2026-06-21T08:16:00.3375186Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-21T08:16:00.3375306Z       "requiredStages": [
2026-06-21T08:16:00.3375411Z         "impl",
2026-06-21T08:16:00.3378411Z         "unit"
2026-06-21T08:16:00.3378546Z       ],
2026-06-21T08:16:00.3378673Z       "stages": {
2026-06-21T08:16:00.3378778Z         "doc": {
2026-06-21T08:16:00.3378899Z           "complete": false,
2026-06-21T08:16:00.3379093Z           "evidence": []
2026-06-21T08:16:00.3379200Z         },
2026-06-21T08:16:00.3379297Z         "impl": {
2026-06-21T08:16:00.3379406Z           "complete": true,
2026-06-21T08:16:00.3379526Z           "evidence": [
2026-06-21T08:16:00.3379624Z             {
2026-06-21T08:16:00.3379781Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-21T08:16:00.3379901Z               "line": 60
2026-06-21T08:16:00.3380010Z             },
2026-06-21T08:16:00.3380110Z             {
2026-06-21T08:16:00.3380263Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-21T08:16:00.3380381Z               "line": 68
2026-06-21T08:16:00.3380483Z             },
2026-06-21T08:16:00.3380587Z             {
2026-06-21T08:16:00.3380735Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-21T08:16:00.3380849Z               "line": 86
2026-06-21T08:16:00.3380964Z             },
2026-06-21T08:16:00.3381064Z             {
2026-06-21T08:16:00.3381216Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-21T08:16:00.3381326Z               "line": 120
2026-06-21T08:16:00.3381432Z             },
2026-06-21T08:16:00.3381550Z             {
2026-06-21T08:16:00.3381694Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-21T08:16:00.3381813Z               "line": 127
2026-06-21T08:16:00.3381916Z             },
2026-06-21T08:16:00.3382021Z             {
2026-06-21T08:16:00.3382163Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-21T08:16:00.3382271Z               "line": 143
2026-06-21T08:16:00.3382377Z             },
2026-06-21T08:16:00.3382482Z             {
2026-06-21T08:16:00.3382619Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-21T08:16:00.3382735Z               "line": 16
2026-06-21T08:16:00.3382844Z             }
2026-06-21T08:16:00.3382948Z           ]
2026-06-21T08:16:00.3383054Z         },
2026-06-21T08:16:00.3383159Z         "int": {
2026-06-21T08:16:00.3383268Z           "complete": false,
2026-06-21T08:16:00.3383392Z           "evidence": []
2026-06-21T08:16:00.3383493Z         },
2026-06-21T08:16:00.3383602Z         "unit": {
2026-06-21T08:16:00.3383707Z           "complete": true,
2026-06-21T08:16:00.3383817Z           "evidence": [
2026-06-21T08:16:00.3383917Z             {
2026-06-21T08:16:00.3384064Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-21T08:16:00.3384169Z               "line": 199
2026-06-21T08:16:00.3384276Z             },
2026-06-21T08:16:00.3384384Z             {
2026-06-21T08:16:00.3384532Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-21T08:16:00.3384642Z               "line": 218
2026-06-21T08:16:00.3384736Z             },
2026-06-21T08:16:00.3384845Z             {
2026-06-21T08:16:00.3384989Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-21T08:16:00.3385098Z               "line": 234
2026-06-21T08:16:00.3385366Z             },
2026-06-21T08:16:00.3385469Z             {
2026-06-21T08:16:00.3385614Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-21T08:16:00.3385828Z               "line": 256
2026-06-21T08:16:00.3385929Z             },
2026-06-21T08:16:00.3386033Z             {
2026-06-21T08:16:00.3386166Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-21T08:16:00.3386277Z               "line": 124
2026-06-21T08:16:00.3386386Z             },
2026-06-21T08:16:00.3386496Z             {
2026-06-21T08:16:00.3386634Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-21T08:16:00.3386747Z               "line": 140
2026-06-21T08:16:00.3386854Z             },
2026-06-21T08:16:00.3386962Z             {
2026-06-21T08:16:00.3387095Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-21T08:16:00.3387195Z               "line": 155
2026-06-21T08:16:00.3387298Z             }
2026-06-21T08:16:00.3387412Z           ]
2026-06-21T08:16:00.3387527Z         }
2026-06-21T08:16:00.3387627Z       }
2026-06-21T08:16:00.3387727Z     },
2026-06-21T08:16:00.3387832Z     {
2026-06-21T08:16:00.3387951Z       "id": "REQ-NOTIF-1",
2026-06-21T08:16:00.3388341Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-21T08:16:00.3388462Z       "requiredStages": [
2026-06-21T08:16:00.3388566Z         "impl",
2026-06-21T08:16:00.3388675Z         "unit",
2026-06-21T08:16:00.3388781Z         "int"
2026-06-21T08:16:00.3388890Z       ],
2026-06-21T08:16:00.3389058Z       "stages": {
2026-06-21T08:16:00.3389167Z         "doc": {
2026-06-21T08:16:00.3389286Z           "complete": false,
2026-06-21T08:16:00.3389401Z           "evidence": []
2026-06-21T08:16:00.3389505Z         },
2026-06-21T08:16:00.3389615Z         "impl": {
2026-06-21T08:16:00.3389736Z           "complete": true,
2026-06-21T08:16:00.3389848Z           "evidence": [
2026-06-21T08:16:00.3389952Z             {
2026-06-21T08:16:00.3390110Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T08:16:00.3390222Z               "line": 514
2026-06-21T08:16:00.3390322Z             },
2026-06-21T08:16:00.3390423Z             {
2026-06-21T08:16:00.3390560Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3390666Z               "line": 30
2026-06-21T08:16:00.3390766Z             },
2026-06-21T08:16:00.3390865Z             {
2026-06-21T08:16:00.3391005Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3391109Z               "line": 69
2026-06-21T08:16:00.3391213Z             },
2026-06-21T08:16:00.3391324Z             {
2026-06-21T08:16:00.3391467Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3391576Z               "line": 93
2026-06-21T08:16:00.3391673Z             },
2026-06-21T08:16:00.3391776Z             {
2026-06-21T08:16:00.3391920Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3392020Z               "line": 107
2026-06-21T08:16:00.3392139Z             },
2026-06-21T08:16:00.3392250Z             {
2026-06-21T08:16:00.3392392Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3392495Z               "line": 142
2026-06-21T08:16:00.3392595Z             },
2026-06-21T08:16:00.3392704Z             {
2026-06-21T08:16:00.3392840Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3392951Z               "line": 187
2026-06-21T08:16:00.3393052Z             },
2026-06-21T08:16:00.3393155Z             {
2026-06-21T08:16:00.3393295Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3393404Z               "line": 258
2026-06-21T08:16:00.3393513Z             },
2026-06-21T08:16:00.3393614Z             {
2026-06-21T08:16:00.3393742Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3393862Z               "line": 372
2026-06-21T08:16:00.3393952Z             },
2026-06-21T08:16:00.3394062Z             {
2026-06-21T08:16:00.3394315Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3394429Z               "line": 479
2026-06-21T08:16:00.3394629Z             },
2026-06-21T08:16:00.3394734Z             {
2026-06-21T08:16:00.3394888Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T08:16:00.3394996Z               "line": 24
2026-06-21T08:16:00.3395102Z             },
2026-06-21T08:16:00.3395207Z             {
2026-06-21T08:16:00.3395353Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T08:16:00.3395462Z               "line": 34
2026-06-21T08:16:00.3395568Z             },
2026-06-21T08:16:00.3395677Z             {
2026-06-21T08:16:00.3395816Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T08:16:00.3395926Z               "line": 60
2026-06-21T08:16:00.3396029Z             },
2026-06-21T08:16:00.3396140Z             {
2026-06-21T08:16:00.3396288Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T08:16:00.3396402Z               "line": 82
2026-06-21T08:16:00.3396512Z             },
2026-06-21T08:16:00.3396612Z             {
2026-06-21T08:16:00.3396761Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T08:16:00.3396860Z               "line": 94
2026-06-21T08:16:00.3396955Z             },
2026-06-21T08:16:00.3397066Z             {
2026-06-21T08:16:00.3397217Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T08:16:00.3397322Z               "line": 96
2026-06-21T08:16:00.3397428Z             },
2026-06-21T08:16:00.3397537Z             {
2026-06-21T08:16:00.3397678Z               "path": "crates/spt-daemon/src/pump/notif.rs",
2026-06-21T08:16:00.3397793Z               "line": 44
2026-06-21T08:16:00.3397901Z             },
2026-06-21T08:16:00.3398000Z             {
2026-06-21T08:16:00.3398145Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-21T08:16:00.3398258Z               "line": 20
2026-06-21T08:16:00.3398364Z             },
2026-06-21T08:16:00.3398449Z             {
2026-06-21T08:16:00.3398596Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-21T08:16:00.3398707Z               "line": 30
2026-06-21T08:16:00.3398817Z             },
2026-06-21T08:16:00.3398921Z             {
2026-06-21T08:16:00.3399165Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-21T08:16:00.3399269Z               "line": 50
2026-06-21T08:16:00.3399375Z             },
2026-06-21T08:16:00.3399484Z             {
2026-06-21T08:16:00.3399633Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T08:16:00.3399737Z               "line": 28
2026-06-21T08:16:00.3399841Z             },
2026-06-21T08:16:00.3399943Z             {
2026-06-21T08:16:00.3400084Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T08:16:00.3400194Z               "line": 126
2026-06-21T08:16:00.3400300Z             },
2026-06-21T08:16:00.3400404Z             {
2026-06-21T08:16:00.3400541Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T08:16:00.3400665Z               "line": 161
2026-06-21T08:16:00.3400763Z             },
2026-06-21T08:16:00.3400872Z             {
2026-06-21T08:16:00.3401012Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T08:16:00.3401120Z               "line": 202
2026-06-21T08:16:00.3401221Z             },
2026-06-21T08:16:00.3401321Z             {
2026-06-21T08:16:00.3401454Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T08:16:00.3401565Z               "line": 213
2026-06-21T08:16:00.3401674Z             },
2026-06-21T08:16:00.3401773Z             {
2026-06-21T08:16:00.3401894Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T08:16:00.3402003Z               "line": 238
2026-06-21T08:16:00.3402103Z             },
2026-06-21T08:16:00.3402896Z             {
2026-06-21T08:16:00.3403032Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T08:16:00.3403141Z               "line": 261
2026-06-21T08:16:00.3403250Z             },
2026-06-21T08:16:00.3403354Z             {
2026-06-21T08:16:00.3403612Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.3403711Z               "line": 86
2026-06-21T08:16:00.3403917Z             }
2026-06-21T08:16:00.3404011Z           ]
2026-06-21T08:16:00.3404117Z         },
2026-06-21T08:16:00.3404222Z         "int": {
2026-06-21T08:16:00.3404331Z           "complete": true,
2026-06-21T08:16:00.3404442Z           "evidence": [
2026-06-21T08:16:00.3404550Z             {
2026-06-21T08:16:00.3404698Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T08:16:00.3404809Z               "line": 285
2026-06-21T08:16:00.3404913Z             },
2026-06-21T08:16:00.3405022Z             {
2026-06-21T08:16:00.3405161Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-21T08:16:00.3405280Z               "line": 145
2026-06-21T08:16:00.3405386Z             },
2026-06-21T08:16:00.3405485Z             {
2026-06-21T08:16:00.3405633Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.3405758Z               "line": 684
2026-06-21T08:16:00.3405866Z             },
2026-06-21T08:16:00.3405970Z             {
2026-06-21T08:16:00.3406129Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.3406242Z               "line": 1102
2026-06-21T08:16:00.3406347Z             }
2026-06-21T08:16:00.3406448Z           ]
2026-06-21T08:16:00.3406552Z         },
2026-06-21T08:16:00.3406657Z         "unit": {
2026-06-21T08:16:00.3406777Z           "complete": true,
2026-06-21T08:16:00.3406895Z           "evidence": [
2026-06-21T08:16:00.3407001Z             {
2026-06-21T08:16:00.3407148Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3407253Z               "line": 572
2026-06-21T08:16:00.3407354Z             },
2026-06-21T08:16:00.3407463Z             {
2026-06-21T08:16:00.3407597Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3407702Z               "line": 636
2026-06-21T08:16:00.3407806Z             },
2026-06-21T08:16:00.3407921Z             {
2026-06-21T08:16:00.3408064Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3408172Z               "line": 740
2026-06-21T08:16:00.3408282Z             },
2026-06-21T08:16:00.3408381Z             {
2026-06-21T08:16:00.3408522Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3408632Z               "line": 772
2026-06-21T08:16:00.3408742Z             },
2026-06-21T08:16:00.3408842Z             {
2026-06-21T08:16:00.3409071Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3409176Z               "line": 840
2026-06-21T08:16:00.3409282Z             },
2026-06-21T08:16:00.3409396Z             {
2026-06-21T08:16:00.3409534Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3409639Z               "line": 898
2026-06-21T08:16:00.3409744Z             },
2026-06-21T08:16:00.3409844Z             {
2026-06-21T08:16:00.3409987Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3410105Z               "line": 1173
2026-06-21T08:16:00.3410212Z             },
2026-06-21T08:16:00.3410316Z             {
2026-06-21T08:16:00.3410469Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T08:16:00.3410579Z               "line": 157
2026-06-21T08:16:00.3410677Z             },
2026-06-21T08:16:00.3410784Z             {
2026-06-21T08:16:00.3410927Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T08:16:00.3411035Z               "line": 250
2026-06-21T08:16:00.3411140Z             },
2026-06-21T08:16:00.3411249Z             {
2026-06-21T08:16:00.3411394Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T08:16:00.3411500Z               "line": 273
2026-06-21T08:16:00.3411615Z             },
2026-06-21T08:16:00.3411714Z             {
2026-06-21T08:16:00.3411858Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T08:16:00.3411972Z               "line": 355
2026-06-21T08:16:00.3412076Z             },
2026-06-21T08:16:00.3412287Z             {
2026-06-21T08:16:00.3412440Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T08:16:00.3412648Z               "line": 392
2026-06-21T08:16:00.3412755Z             },
2026-06-21T08:16:00.3412859Z             {
2026-06-21T08:16:00.3413011Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-21T08:16:00.3413122Z               "line": 131
2026-06-21T08:16:00.3413225Z             },
2026-06-21T08:16:00.3413331Z             {
2026-06-21T08:16:00.3413470Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-21T08:16:00.3413582Z               "line": 72
2026-06-21T08:16:00.3413692Z             },
2026-06-21T08:16:00.3413792Z             {
2026-06-21T08:16:00.3413942Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-21T08:16:00.3414052Z               "line": 97
2026-06-21T08:16:00.3414163Z             },
2026-06-21T08:16:00.3414266Z             {
2026-06-21T08:16:00.3414410Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T08:16:00.3414533Z               "line": 379
2026-06-21T08:16:00.3414633Z             },
2026-06-21T08:16:00.3414744Z             {
2026-06-21T08:16:00.3414886Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T08:16:00.3414992Z               "line": 417
2026-06-21T08:16:00.3415096Z             },
2026-06-21T08:16:00.3415196Z             {
2026-06-21T08:16:00.3415326Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T08:16:00.3415435Z               "line": 433
2026-06-21T08:16:00.3415540Z             },
2026-06-21T08:16:00.3415641Z             {
2026-06-21T08:16:00.3415773Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T08:16:00.3415879Z               "line": 472
2026-06-21T08:16:00.3415980Z             },
2026-06-21T08:16:00.3416092Z             {
2026-06-21T08:16:00.3416232Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T08:16:00.3416337Z               "line": 489
2026-06-21T08:16:00.3416445Z             },
2026-06-21T08:16:00.3416554Z             {
2026-06-21T08:16:00.3416699Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T08:16:00.3416802Z               "line": 517
2026-06-21T08:16:00.3416912Z             },
2026-06-21T08:16:00.3417017Z             {
2026-06-21T08:16:00.3417155Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T08:16:00.3417261Z               "line": 548
2026-06-21T08:16:00.3417370Z             },
2026-06-21T08:16:00.3417470Z             {
2026-06-21T08:16:00.3417618Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.3417718Z               "line": 745
2026-06-21T08:16:00.3417813Z             }
2026-06-21T08:16:00.3417919Z           ]
2026-06-21T08:16:00.3418028Z         }
2026-06-21T08:16:00.3418132Z       }
2026-06-21T08:16:00.3418234Z     },
2026-06-21T08:16:00.3418333Z     {
2026-06-21T08:16:00.3418457Z       "id": "REQ-NOTIF-2",
2026-06-21T08:16:00.3418751Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-21T08:16:00.3418876Z       "requiredStages": [
2026-06-21T08:16:00.3419064Z         "doc",
2026-06-21T08:16:00.3419169Z         "impl",
2026-06-21T08:16:00.3419275Z         "unit",
2026-06-21T08:16:00.3419378Z         "int"
2026-06-21T08:16:00.3419484Z       ],
2026-06-21T08:16:00.3419589Z       "stages": {
2026-06-21T08:16:00.3419684Z         "doc": {
2026-06-21T08:16:00.3419809Z           "complete": true,
2026-06-21T08:16:00.3419918Z           "evidence": [
2026-06-21T08:16:00.3420027Z             {
2026-06-21T08:16:00.3420147Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.3420261Z               "line": 509
2026-06-21T08:16:00.3420365Z             },
2026-06-21T08:16:00.3420467Z             {
2026-06-21T08:16:00.3420595Z               "path": "docs/MANIFEST.md",
2026-06-21T08:16:00.3420699Z               "line": 123
2026-06-21T08:16:00.3420810Z             }
2026-06-21T08:16:00.3420914Z           ]
2026-06-21T08:16:00.3421014Z         },
2026-06-21T08:16:00.3421224Z         "impl": {
2026-06-21T08:16:00.3421344Z           "complete": true,
2026-06-21T08:16:00.3421459Z           "evidence": [
2026-06-21T08:16:00.3421647Z             {
2026-06-21T08:16:00.3421795Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3421902Z               "line": 287
2026-06-21T08:16:00.3422007Z             },
2026-06-21T08:16:00.3422113Z             {
2026-06-21T08:16:00.3422241Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3422361Z               "line": 301
2026-06-21T08:16:00.3422461Z             },
2026-06-21T08:16:00.3422569Z             {
2026-06-21T08:16:00.3422709Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3422819Z               "line": 326
2026-06-21T08:16:00.3422927Z             },
2026-06-21T08:16:00.3423033Z             {
2026-06-21T08:16:00.3423176Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3423285Z               "line": 239
2026-06-21T08:16:00.3423405Z             },
2026-06-21T08:16:00.3423500Z             {
2026-06-21T08:16:00.3423639Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.3423753Z               "line": 95
2026-06-21T08:16:00.3423848Z             },
2026-06-21T08:16:00.3423954Z             {
2026-06-21T08:16:00.3424077Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3424186Z               "line": 2225
2026-06-21T08:16:00.3424290Z             },
2026-06-21T08:16:00.3424399Z             {
2026-06-21T08:16:00.3424536Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3424646Z               "line": 2274
2026-06-21T08:16:00.3424751Z             },
2026-06-21T08:16:00.3424855Z             {
2026-06-21T08:16:00.3424985Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3425094Z               "line": 2353
2026-06-21T08:16:00.3425208Z             },
2026-06-21T08:16:00.3425300Z             {
2026-06-21T08:16:00.3425423Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3425533Z               "line": 2392
2026-06-21T08:16:00.3425633Z             }
2026-06-21T08:16:00.3425747Z           ]
2026-06-21T08:16:00.3425852Z         },
2026-06-21T08:16:00.3425962Z         "int": {
2026-06-21T08:16:00.3426080Z           "complete": true,
2026-06-21T08:16:00.3426177Z           "evidence": [
2026-06-21T08:16:00.3426286Z             {
2026-06-21T08:16:00.3426429Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.3426550Z               "line": 810
2026-06-21T08:16:00.3426652Z             },
2026-06-21T08:16:00.3426758Z             {
2026-06-21T08:16:00.3426912Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.3427019Z               "line": 1345
2026-06-21T08:16:00.3427114Z             }
2026-06-21T08:16:00.3427210Z           ]
2026-06-21T08:16:00.3427324Z         },
2026-06-21T08:16:00.3427419Z         "unit": {
2026-06-21T08:16:00.3427544Z           "complete": true,
2026-06-21T08:16:00.3427658Z           "evidence": [
2026-06-21T08:16:00.3427758Z             {
2026-06-21T08:16:00.3427897Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3428006Z               "line": 1022
2026-06-21T08:16:00.3428116Z             },
2026-06-21T08:16:00.3428221Z             {
2026-06-21T08:16:00.3428354Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3428460Z               "line": 1090
2026-06-21T08:16:00.3428554Z             },
2026-06-21T08:16:00.3428650Z             {
2026-06-21T08:16:00.3428775Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3428883Z               "line": 8210
2026-06-21T08:16:00.3429065Z             },
2026-06-21T08:16:00.3429175Z             {
2026-06-21T08:16:00.3429307Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3429417Z               "line": 8265
2026-06-21T08:16:00.3429515Z             }
2026-06-21T08:16:00.3429614Z           ]
2026-06-21T08:16:00.3429724Z         }
2026-06-21T08:16:00.3429820Z       }
2026-06-21T08:16:00.3430054Z     },
2026-06-21T08:16:00.3430163Z     {
2026-06-21T08:16:00.3430281Z       "id": "REQ-PAIR-1",
2026-06-21T08:16:00.3430506Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-21T08:16:00.3430620Z       "requiredStages": [
2026-06-21T08:16:00.3430731Z         "impl",
2026-06-21T08:16:00.3430831Z         "unit",
2026-06-21T08:16:00.3430945Z         "int"
2026-06-21T08:16:00.3431050Z       ],
2026-06-21T08:16:00.3431150Z       "stages": {
2026-06-21T08:16:00.3431259Z         "doc": {
2026-06-21T08:16:00.3431365Z           "complete": false,
2026-06-21T08:16:00.3431479Z           "evidence": []
2026-06-21T08:16:00.3431584Z         },
2026-06-21T08:16:00.3431699Z         "impl": {
2026-06-21T08:16:00.3431817Z           "complete": true,
2026-06-21T08:16:00.3431923Z           "evidence": [
2026-06-21T08:16:00.3432028Z             {
2026-06-21T08:16:00.3432179Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T08:16:00.3432289Z               "line": 27
2026-06-21T08:16:00.3432392Z             },
2026-06-21T08:16:00.3432500Z             {
2026-06-21T08:16:00.3432654Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T08:16:00.3432758Z               "line": 88
2026-06-21T08:16:00.3432858Z             },
2026-06-21T08:16:00.3432964Z             {
2026-06-21T08:16:00.3433121Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T08:16:00.3433231Z               "line": 110
2026-06-21T08:16:00.3433336Z             },
2026-06-21T08:16:00.3433440Z             {
2026-06-21T08:16:00.3433593Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T08:16:00.3433702Z               "line": 153
2026-06-21T08:16:00.3433807Z             },
2026-06-21T08:16:00.3433903Z             {
2026-06-21T08:16:00.3434055Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T08:16:00.3434160Z               "line": 182
2026-06-21T08:16:00.3434276Z             },
2026-06-21T08:16:00.3434374Z             {
2026-06-21T08:16:00.3434543Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-21T08:16:00.3434656Z               "line": 29
2026-06-21T08:16:00.3434760Z             },
2026-06-21T08:16:00.3434864Z             {
2026-06-21T08:16:00.3435034Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-21T08:16:00.3435144Z               "line": 31
2026-06-21T08:16:00.3435249Z             },
2026-06-21T08:16:00.3435358Z             {
2026-06-21T08:16:00.3435512Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T08:16:00.3435617Z               "line": 44
2026-06-21T08:16:00.3435720Z             },
2026-06-21T08:16:00.3435826Z             {
2026-06-21T08:16:00.3435974Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T08:16:00.3436078Z               "line": 171
2026-06-21T08:16:00.3436193Z             },
2026-06-21T08:16:00.3436298Z             {
2026-06-21T08:16:00.3436451Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T08:16:00.3436564Z               "line": 376
2026-06-21T08:16:00.3436669Z             }
2026-06-21T08:16:00.3436780Z           ]
2026-06-21T08:16:00.3436879Z         },
2026-06-21T08:16:00.3436989Z         "int": {
2026-06-21T08:16:00.3437100Z           "complete": true,
2026-06-21T08:16:00.3437217Z           "evidence": [
2026-06-21T08:16:00.3437328Z             {
2026-06-21T08:16:00.3437472Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.3437584Z               "line": 645
2026-06-21T08:16:00.3437689Z             },
2026-06-21T08:16:00.3437794Z             {
2026-06-21T08:16:00.3437937Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.3438051Z               "line": 887
2026-06-21T08:16:00.3438147Z             }
2026-06-21T08:16:00.3438251Z           ]
2026-06-21T08:16:00.3438357Z         },
2026-06-21T08:16:00.3438462Z         "unit": {
2026-06-21T08:16:00.3438585Z           "complete": true,
2026-06-21T08:16:00.3438776Z           "evidence": [
2026-06-21T08:16:00.3438880Z             {
2026-06-21T08:16:00.3439124Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T08:16:00.3439335Z               "line": 236
2026-06-21T08:16:00.3439472Z             },
2026-06-21T08:16:00.3439558Z             {
2026-06-21T08:16:00.3439716Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T08:16:00.3439820Z               "line": 349
2026-06-21T08:16:00.3439934Z             },
2026-06-21T08:16:00.3440038Z             {
2026-06-21T08:16:00.3440184Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-21T08:16:00.3440294Z               "line": 194
2026-06-21T08:16:00.3440390Z             },
2026-06-21T08:16:00.3440499Z             {
2026-06-21T08:16:00.3440657Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-21T08:16:00.3440766Z               "line": 216
2026-06-21T08:16:00.3440865Z             },
2026-06-21T08:16:00.3440962Z             {
2026-06-21T08:16:00.3441128Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-21T08:16:00.3441234Z               "line": 230
2026-06-21T08:16:00.3441353Z             },
2026-06-21T08:16:00.3441457Z             {
2026-06-21T08:16:00.3441606Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-21T08:16:00.3441710Z               "line": 242
2026-06-21T08:16:00.3441814Z             },
2026-06-21T08:16:00.3441926Z             {
2026-06-21T08:16:00.3442077Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-21T08:16:00.3442188Z               "line": 256
2026-06-21T08:16:00.3442292Z             },
2026-06-21T08:16:00.3442397Z             {
2026-06-21T08:16:00.3442551Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-21T08:16:00.3442649Z               "line": 270
2026-06-21T08:16:00.3442757Z             },
2026-06-21T08:16:00.3442858Z             {
2026-06-21T08:16:00.3443004Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-21T08:16:00.3443128Z               "line": 277
2026-06-21T08:16:00.3443224Z             },
2026-06-21T08:16:00.3443323Z             {
2026-06-21T08:16:00.3443476Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-21T08:16:00.3443591Z               "line": 295
2026-06-21T08:16:00.3443685Z             },
2026-06-21T08:16:00.3443786Z             {
2026-06-21T08:16:00.3443939Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T08:16:00.3444052Z               "line": 968
2026-06-21T08:16:00.3444158Z             },
2026-06-21T08:16:00.3444258Z             {
2026-06-21T08:16:00.3444411Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T08:16:00.3444521Z               "line": 1051
2026-06-21T08:16:00.3444634Z             },
2026-06-21T08:16:00.3444740Z             {
2026-06-21T08:16:00.3444896Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T08:16:00.3445006Z               "line": 1121
2026-06-21T08:16:00.3445112Z             },
2026-06-21T08:16:00.3445225Z             {
2026-06-21T08:16:00.3445372Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T08:16:00.3445472Z               "line": 1182
2026-06-21T08:16:00.3445585Z             },
2026-06-21T08:16:00.3445689Z             {
2026-06-21T08:16:00.3445853Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T08:16:00.3445956Z               "line": 1238
2026-06-21T08:16:00.3446067Z             },
2026-06-21T08:16:00.3446177Z             {
2026-06-21T08:16:00.3446319Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T08:16:00.3446439Z               "line": 1457
2026-06-21T08:16:00.3446529Z             }
2026-06-21T08:16:00.3446638Z           ]
2026-06-21T08:16:00.3446735Z         }
2026-06-21T08:16:00.3446844Z       }
2026-06-21T08:16:00.3446953Z     },
2026-06-21T08:16:00.3447054Z     {
2026-06-21T08:16:00.3447168Z       "id": "REQ-PAIR-2",
2026-06-21T08:16:00.3447322Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-21T08:16:00.3447544Z       "requiredStages": [],
2026-06-21T08:16:00.3447650Z       "stages": {
2026-06-21T08:16:00.3447826Z         "doc": {
2026-06-21T08:16:00.3447946Z           "complete": false,
2026-06-21T08:16:00.3448051Z           "evidence": []
2026-06-21T08:16:00.3448158Z         },
2026-06-21T08:16:00.3448263Z         "impl": {
2026-06-21T08:16:00.3448379Z           "complete": false,
2026-06-21T08:16:00.3448487Z           "evidence": []
2026-06-21T08:16:00.3448598Z         },
2026-06-21T08:16:00.3448702Z         "int": {
2026-06-21T08:16:00.3448806Z           "complete": false,
2026-06-21T08:16:00.3448913Z           "evidence": []
2026-06-21T08:16:00.3449103Z         },
2026-06-21T08:16:00.3449212Z         "unit": {
2026-06-21T08:16:00.3449318Z           "complete": false,
2026-06-21T08:16:00.3449441Z           "evidence": []
2026-06-21T08:16:00.3449552Z         }
2026-06-21T08:16:00.3449651Z       }
2026-06-21T08:16:00.3449760Z     },
2026-06-21T08:16:00.3449862Z     {
2026-06-21T08:16:00.3449985Z       "id": "REQ-PAIR-3",
2026-06-21T08:16:00.3450161Z       "title": "Fetch current pairing code from any paired node",
2026-06-21T08:16:00.3450286Z       "requiredStages": [
2026-06-21T08:16:00.3450389Z         "impl",
2026-06-21T08:16:00.3450489Z         "unit"
2026-06-21T08:16:00.3450594Z       ],
2026-06-21T08:16:00.3450706Z       "stages": {
2026-06-21T08:16:00.3450811Z         "doc": {
2026-06-21T08:16:00.3450926Z           "complete": false,
2026-06-21T08:16:00.3451049Z           "evidence": []
2026-06-21T08:16:00.3451154Z         },
2026-06-21T08:16:00.3451264Z         "impl": {
2026-06-21T08:16:00.3451383Z           "complete": true,
2026-06-21T08:16:00.3451489Z           "evidence": [
2026-06-21T08:16:00.3451593Z             {
2026-06-21T08:16:00.3451726Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3451842Z               "line": 3259
2026-06-21T08:16:00.3451942Z             },
2026-06-21T08:16:00.3452046Z             {
2026-06-21T08:16:00.3452190Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3452289Z               "line": 3328
2026-06-21T08:16:00.3452399Z             },
2026-06-21T08:16:00.3452505Z             {
2026-06-21T08:16:00.3452628Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3452743Z               "line": 3709
2026-06-21T08:16:00.3452847Z             },
2026-06-21T08:16:00.3452957Z             {
2026-06-21T08:16:00.3453077Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3453195Z               "line": 4961
2026-06-21T08:16:00.3453290Z             }
2026-06-21T08:16:00.3453399Z           ]
2026-06-21T08:16:00.3453507Z         },
2026-06-21T08:16:00.3453611Z         "int": {
2026-06-21T08:16:00.3453731Z           "complete": false,
2026-06-21T08:16:00.3453841Z           "evidence": []
2026-06-21T08:16:00.3453950Z         },
2026-06-21T08:16:00.3454056Z         "unit": {
2026-06-21T08:16:00.3454170Z           "complete": true,
2026-06-21T08:16:00.3454279Z           "evidence": [
2026-06-21T08:16:00.3454394Z             {
2026-06-21T08:16:00.3454522Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3454632Z               "line": 9964
2026-06-21T08:16:00.3454732Z             },
2026-06-21T08:16:00.3457814Z             {
2026-06-21T08:16:00.3457995Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3458119Z               "line": 10179
2026-06-21T08:16:00.3458211Z             },
2026-06-21T08:16:00.3458314Z             {
2026-06-21T08:16:00.3458448Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3458559Z               "line": 10838
2026-06-21T08:16:00.3458662Z             },
2026-06-21T08:16:00.3458776Z             {
2026-06-21T08:16:00.3458906Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3459100Z               "line": 10857
2026-06-21T08:16:00.3459206Z             },
2026-06-21T08:16:00.3459311Z             {
2026-06-21T08:16:00.3459453Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3459715Z               "line": 10881
2026-06-21T08:16:00.3459821Z             },
2026-06-21T08:16:00.3459925Z             {
2026-06-21T08:16:00.3460155Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3460263Z               "line": 10900
2026-06-21T08:16:00.3460368Z             },
2026-06-21T08:16:00.3460465Z             {
2026-06-21T08:16:00.3460587Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3460703Z               "line": 10913
2026-06-21T08:16:00.3460799Z             },
2026-06-21T08:16:00.3460897Z             {
2026-06-21T08:16:00.3461025Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3461135Z               "line": 10922
2026-06-21T08:16:00.3461242Z             }
2026-06-21T08:16:00.3461342Z           ]
2026-06-21T08:16:00.3461448Z         }
2026-06-21T08:16:00.3461548Z       }
2026-06-21T08:16:00.3461652Z     },
2026-06-21T08:16:00.3461758Z     {
2026-06-21T08:16:00.3461877Z       "id": "REQ-PAIR-4",
2026-06-21T08:16:00.3462010Z       "title": "Subnet naming on first pairing",
2026-06-21T08:16:00.3462134Z       "requiredStages": [
2026-06-21T08:16:00.3462243Z         "impl",
2026-06-21T08:16:00.3462359Z         "unit"
2026-06-21T08:16:00.3462454Z       ],
2026-06-21T08:16:00.3462563Z       "stages": {
2026-06-21T08:16:00.3462664Z         "doc": {
2026-06-21T08:16:00.3462782Z           "complete": false,
2026-06-21T08:16:00.3462892Z           "evidence": []
2026-06-21T08:16:00.3463003Z         },
2026-06-21T08:16:00.3463102Z         "impl": {
2026-06-21T08:16:00.3463211Z           "complete": true,
2026-06-21T08:16:00.3463322Z           "evidence": [
2026-06-21T08:16:00.3463431Z             {
2026-06-21T08:16:00.3463579Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T08:16:00.3463690Z               "line": 174
2026-06-21T08:16:00.3463793Z             }
2026-06-21T08:16:00.3463892Z           ]
2026-06-21T08:16:00.3463993Z         },
2026-06-21T08:16:00.3464100Z         "int": {
2026-06-21T08:16:00.3464204Z           "complete": false,
2026-06-21T08:16:00.3464325Z           "evidence": []
2026-06-21T08:16:00.3464429Z         },
2026-06-21T08:16:00.3464548Z         "unit": {
2026-06-21T08:16:00.3464668Z           "complete": true,
2026-06-21T08:16:00.3464781Z           "evidence": [
2026-06-21T08:16:00.3464887Z             {
2026-06-21T08:16:00.3465040Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T08:16:00.3465158Z               "line": 1294
2026-06-21T08:16:00.3465255Z             }
2026-06-21T08:16:00.3465359Z           ]
2026-06-21T08:16:00.3465449Z         }
2026-06-21T08:16:00.3465555Z       }
2026-06-21T08:16:00.3465655Z     },
2026-06-21T08:16:00.3465759Z     {
2026-06-21T08:16:00.3465899Z       "id": "REQ-PAIR-5",
2026-06-21T08:16:00.3466266Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-21T08:16:00.3466388Z       "requiredStages": [
2026-06-21T08:16:00.3466493Z         "impl",
2026-06-21T08:16:00.3466597Z         "unit",
2026-06-21T08:16:00.3466715Z         "int"
2026-06-21T08:16:00.3466819Z       ],
2026-06-21T08:16:00.3466925Z       "stages": {
2026-06-21T08:16:00.3467034Z         "doc": {
2026-06-21T08:16:00.3467148Z           "complete": false,
2026-06-21T08:16:00.3467245Z           "evidence": []
2026-06-21T08:16:00.3467344Z         },
2026-06-21T08:16:00.3467454Z         "impl": {
2026-06-21T08:16:00.3467564Z           "complete": true,
2026-06-21T08:16:00.3467682Z           "evidence": [
2026-06-21T08:16:00.3467783Z             {
2026-06-21T08:16:00.3467940Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T08:16:00.3468049Z               "line": 44
2026-06-21T08:16:00.3468155Z             },
2026-06-21T08:16:00.3468269Z             {
2026-06-21T08:16:00.3468417Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T08:16:00.3468527Z               "line": 96
2026-06-21T08:16:00.3468632Z             },
2026-06-21T08:16:00.3468732Z             {
2026-06-21T08:16:00.3469057Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T08:16:00.3469208Z               "line": 107
2026-06-21T08:16:00.3469485Z             },
2026-06-21T08:16:00.3469584Z             {
2026-06-21T08:16:00.3469737Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T08:16:00.3469842Z               "line": 124
2026-06-21T08:16:00.3469950Z             },
2026-06-21T08:16:00.3470052Z             {
2026-06-21T08:16:00.3470204Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T08:16:00.3470318Z               "line": 155
2026-06-21T08:16:00.3470414Z             },
2026-06-21T08:16:00.3470519Z             {
2026-06-21T08:16:00.3470667Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T08:16:00.3470781Z               "line": 195
2026-06-21T08:16:00.3470876Z             },
2026-06-21T08:16:00.3470977Z             {
2026-06-21T08:16:00.3471129Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T08:16:00.3471248Z               "line": 251
2026-06-21T08:16:00.3471359Z             },
2026-06-21T08:16:00.3471458Z             {
2026-06-21T08:16:00.3471643Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-21T08:16:00.3471752Z               "line": 33
2026-06-21T08:16:00.3471860Z             },
2026-06-21T08:16:00.3471960Z             {
2026-06-21T08:16:00.3472132Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-21T08:16:00.3472241Z               "line": 45
2026-06-21T08:16:00.3472338Z             },
2026-06-21T08:16:00.3472442Z             {
2026-06-21T08:16:00.3472609Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-21T08:16:00.3472723Z               "line": 59
2026-06-21T08:16:00.3472832Z             },
2026-06-21T08:16:00.3472933Z             {
2026-06-21T08:16:00.3473086Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T08:16:00.3473195Z               "line": 376
2026-06-21T08:16:00.3473301Z             }
2026-06-21T08:16:00.3473401Z           ]
2026-06-21T08:16:00.3473490Z         },
2026-06-21T08:16:00.3473601Z         "int": {
2026-06-21T08:16:00.3473724Z           "complete": true,
2026-06-21T08:16:00.3473825Z           "evidence": [
2026-06-21T08:16:00.3473935Z             {
2026-06-21T08:16:00.3474086Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.3474202Z               "line": 887
2026-06-21T08:16:00.3474297Z             },
2026-06-21T08:16:00.3474400Z             {
2026-06-21T08:16:00.3474548Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T08:16:00.3474665Z               "line": 342
2026-06-21T08:16:00.3474755Z             }
2026-06-21T08:16:00.3474851Z           ]
2026-06-21T08:16:00.3474952Z         },
2026-06-21T08:16:00.3475056Z         "unit": {
2026-06-21T08:16:00.3475171Z           "complete": true,
2026-06-21T08:16:00.3475281Z           "evidence": [
2026-06-21T08:16:00.3475385Z             {
2026-06-21T08:16:00.3475538Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T08:16:00.3475652Z               "line": 293
2026-06-21T08:16:00.3475767Z             },
2026-06-21T08:16:00.3475863Z             {
2026-06-21T08:16:00.3476014Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T08:16:00.3476125Z               "line": 304
2026-06-21T08:16:00.3476238Z             },
2026-06-21T08:16:00.3476338Z             {
2026-06-21T08:16:00.3476493Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T08:16:00.3476596Z               "line": 406
2026-06-21T08:16:00.3476687Z             },
2026-06-21T08:16:00.3476793Z             {
2026-06-21T08:16:00.3476986Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-21T08:16:00.3477110Z               "line": 72
2026-06-21T08:16:00.3477218Z             },
2026-06-21T08:16:00.3477317Z             {
2026-06-21T08:16:00.3477485Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-21T08:16:00.3477704Z               "line": 82
2026-06-21T08:16:00.3477809Z             },
2026-06-21T08:16:00.3477908Z             {
2026-06-21T08:16:00.3478138Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-21T08:16:00.3478252Z               "line": 100
2026-06-21T08:16:00.3478353Z             },
2026-06-21T08:16:00.3478462Z             {
2026-06-21T08:16:00.3478614Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-21T08:16:00.3478725Z               "line": 110
2026-06-21T08:16:00.3478829Z             },
2026-06-21T08:16:00.3478934Z             {
2026-06-21T08:16:00.3479196Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-21T08:16:00.3479297Z               "line": 125
2026-06-21T08:16:00.3479411Z             },
2026-06-21T08:16:00.3479511Z             {
2026-06-21T08:16:00.3479670Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T08:16:00.3479791Z               "line": 1044
2026-06-21T08:16:00.3479896Z             },
2026-06-21T08:16:00.3480001Z             {
2026-06-21T08:16:00.3480158Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T08:16:00.3480268Z               "line": 1110
2026-06-21T08:16:00.3480374Z             },
2026-06-21T08:16:00.3480478Z             {
2026-06-21T08:16:00.3480631Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T08:16:00.3480741Z               "line": 1357
2026-06-21T08:16:00.3480849Z             }
2026-06-21T08:16:00.3480951Z           ]
2026-06-21T08:16:00.3481046Z         }
2026-06-21T08:16:00.3481145Z       }
2026-06-21T08:16:00.3481242Z     },
2026-06-21T08:16:00.3481346Z     {
2026-06-21T08:16:00.3481460Z       "id": "REQ-PAIR-6",
2026-06-21T08:16:00.3481746Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-21T08:16:00.3481856Z       "requiredStages": [
2026-06-21T08:16:00.3481966Z         "impl",
2026-06-21T08:16:00.3482074Z         "unit"
2026-06-21T08:16:00.3482179Z       ],
2026-06-21T08:16:00.3482288Z       "stages": {
2026-06-21T08:16:00.3482386Z         "doc": {
2026-06-21T08:16:00.3482516Z           "complete": false,
2026-06-21T08:16:00.3482626Z           "evidence": []
2026-06-21T08:16:00.3482734Z         },
2026-06-21T08:16:00.3482835Z         "impl": {
2026-06-21T08:16:00.3482949Z           "complete": true,
2026-06-21T08:16:00.3483053Z           "evidence": [
2026-06-21T08:16:00.3483155Z             {
2026-06-21T08:16:00.3483288Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3483397Z               "line": 3328
2026-06-21T08:16:00.3483508Z             },
2026-06-21T08:16:00.3483602Z             {
2026-06-21T08:16:00.3483726Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3483846Z               "line": 3709
2026-06-21T08:16:00.3483946Z             },
2026-06-21T08:16:00.3484046Z             {
2026-06-21T08:16:00.3484185Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.3484304Z               "line": 18
2026-06-21T08:16:00.3484409Z             },
2026-06-21T08:16:00.3484519Z             {
2026-06-21T08:16:00.3484656Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.3484758Z               "line": 49
2026-06-21T08:16:00.3484867Z             },
2026-06-21T08:16:00.3484970Z             {
2026-06-21T08:16:00.3485118Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.3485230Z               "line": 318
2026-06-21T08:16:00.3485339Z             }
2026-06-21T08:16:00.3485440Z           ]
2026-06-21T08:16:00.3485541Z         },
2026-06-21T08:16:00.3485644Z         "int": {
2026-06-21T08:16:00.3485751Z           "complete": false,
2026-06-21T08:16:00.3485856Z           "evidence": []
2026-06-21T08:16:00.3485949Z         },
2026-06-21T08:16:00.3486060Z         "unit": {
2026-06-21T08:16:00.3486185Z           "complete": true,
2026-06-21T08:16:00.3486293Z           "evidence": [
2026-06-21T08:16:00.3486399Z             {
2026-06-21T08:16:00.3486632Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3486757Z               "line": 10935
2026-06-21T08:16:00.3486956Z             },
2026-06-21T08:16:00.3487062Z             {
2026-06-21T08:16:00.3487194Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3487310Z               "line": 10952
2026-06-21T08:16:00.3487419Z             },
2026-06-21T08:16:00.3487518Z             {
2026-06-21T08:16:00.3487646Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.3487755Z               "line": 383
2026-06-21T08:16:00.3487863Z             },
2026-06-21T08:16:00.3487959Z             {
2026-06-21T08:16:00.3488093Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T08:16:00.3488206Z               "line": 392
2026-06-21T08:16:00.3488308Z             }
2026-06-21T08:16:00.3488412Z           ]
2026-06-21T08:16:00.3488516Z         }
2026-06-21T08:16:00.3488618Z       }
2026-06-21T08:16:00.3488722Z     },
2026-06-21T08:16:00.3488821Z     {
2026-06-21T08:16:00.3489027Z       "id": "REQ-PAIR-7",
2026-06-21T08:16:00.3489208Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-21T08:16:00.3489323Z       "requiredStages": [],
2026-06-21T08:16:00.3489441Z       "stages": {
2026-06-21T08:16:00.3489552Z         "doc": {
2026-06-21T08:16:00.3489670Z           "complete": false,
2026-06-21T08:16:00.3489780Z           "evidence": []
2026-06-21T08:16:00.3489881Z         },
2026-06-21T08:16:00.3489990Z         "impl": {
2026-06-21T08:16:00.3490105Z           "complete": false,
2026-06-21T08:16:00.3490216Z           "evidence": []
2026-06-21T08:16:00.3490319Z         },
2026-06-21T08:16:00.3490432Z         "int": {
2026-06-21T08:16:00.3490533Z           "complete": false,
2026-06-21T08:16:00.3490634Z           "evidence": []
2026-06-21T08:16:00.3490738Z         },
2026-06-21T08:16:00.3490838Z         "unit": {
2026-06-21T08:16:00.3490953Z           "complete": false,
2026-06-21T08:16:00.3491062Z           "evidence": []
2026-06-21T08:16:00.3491168Z         }
2026-06-21T08:16:00.3491267Z       }
2026-06-21T08:16:00.3491367Z     },
2026-06-21T08:16:00.3491462Z     {
2026-06-21T08:16:00.3491577Z       "id": "REQ-PAIR-8",
2026-06-21T08:16:00.3492989Z       "title": "NTP TOTP offset: the pairing ceremony queries NTP at ceremony time (both sides) and applies the derived offset to the TOTP calculation in-process only; system-clock fallback when NTP is unreachable (offline LAN pairing unaffected — NTP failure never blocks a pairing that succeeds today); never sets the OS clock; no background sync loop (M8 decision 18; field trigger: enlyzeam clock >1 min off exceeds the ±1 window)",
2026-06-21T08:16:00.3493104Z       "requiredStages": [
2026-06-21T08:16:00.3493215Z         "impl",
2026-06-21T08:16:00.3493313Z         "unit"
2026-06-21T08:16:00.3493419Z       ],
2026-06-21T08:16:00.3493524Z       "stages": {
2026-06-21T08:16:00.3493637Z         "doc": {
2026-06-21T08:16:00.3493758Z           "complete": false,
2026-06-21T08:16:00.3493872Z           "evidence": []
2026-06-21T08:16:00.3494001Z         },
2026-06-21T08:16:00.3494106Z         "impl": {
2026-06-21T08:16:00.3494225Z           "complete": true,
2026-06-21T08:16:00.3494339Z           "evidence": [
2026-06-21T08:16:00.3494449Z             {
2026-06-21T08:16:00.3494601Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T08:16:00.3494707Z               "line": 577
2026-06-21T08:16:00.3494807Z             },
2026-06-21T08:16:00.3494906Z             {
2026-06-21T08:16:00.3495065Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-21T08:16:00.3495173Z               "line": 22
2026-06-21T08:16:00.3495289Z             },
2026-06-21T08:16:00.3495389Z             {
2026-06-21T08:16:00.3495540Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-21T08:16:00.3495659Z               "line": 76
2026-06-21T08:16:00.3495758Z             },
2026-06-21T08:16:00.3495861Z             {
2026-06-21T08:16:00.3496010Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-21T08:16:00.3496224Z               "line": 127
2026-06-21T08:16:00.3496330Z             }
2026-06-21T08:16:00.3496553Z           ]
2026-06-21T08:16:00.3496664Z         },
2026-06-21T08:16:00.3496768Z         "int": {
2026-06-21T08:16:00.3496882Z           "complete": false,
2026-06-21T08:16:00.3496997Z           "evidence": []
2026-06-21T08:16:00.3497097Z         },
2026-06-21T08:16:00.3497206Z         "unit": {
2026-06-21T08:16:00.3497317Z           "complete": true,
2026-06-21T08:16:00.3497421Z           "evidence": [
2026-06-21T08:16:00.3497526Z             {
2026-06-21T08:16:00.3497683Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-21T08:16:00.3497797Z               "line": 183
2026-06-21T08:16:00.3497908Z             },
2026-06-21T08:16:00.3498016Z             {
2026-06-21T08:16:00.3498168Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-21T08:16:00.3498287Z               "line": 195
2026-06-21T08:16:00.3498390Z             },
2026-06-21T08:16:00.3498505Z             {
2026-06-21T08:16:00.3498653Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-21T08:16:00.3498767Z               "line": 211
2026-06-21T08:16:00.3498868Z             },
2026-06-21T08:16:00.3499038Z             {
2026-06-21T08:16:00.3499192Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-21T08:16:00.3499302Z               "line": 227
2026-06-21T08:16:00.3499415Z             }
2026-06-21T08:16:00.3499521Z           ]
2026-06-21T08:16:00.3499615Z         }
2026-06-21T08:16:00.3499720Z       }
2026-06-21T08:16:00.3499822Z     },
2026-06-21T08:16:00.3499920Z     {
2026-06-21T08:16:00.3500025Z       "id": "REQ-PICKER-1",
2026-06-21T08:16:00.3503573Z       "title": "The picker renders a FOUR-state endpoint status (extending the W2 online/offline duality): the list-item square AND a color-coded STATUS line at the top of the pick-existing right-side details both show — gray OFFLINE; green ONLINE (online + PTY-controllable spt-hosted, not controlled); amber 'ONLINE - HARNESS ONLY' (online but NOT broker-PTY-controllable = harness-hosted, no broker PTY seat — today mis-shows green); blue 'ONLINE + CONTROLLED' (online + driven_by.is_some()). Derived on EndpointRow from {offline | controllable | driven_by} with precedence offline→gray, else driven_by→blue, else !controllable→amber, else green (driven_by outranks harness-only; mutually exclusive in practice — a harness-only endpoint has no broker PTY to control). The controllable discriminator is a NEW InfoJson.controllable: Option<bool> (serde-default, N-1-safe), stamped at the establish seam — cmd_listen (harness-hosted relay, no broker PTY) → Some(false); cmd_bind live_agent (spt-hosted broker PTY) → Some(true); absent → not-controllable (amber) default (harness-hosted is the common mis-reported case; one bind self-corrects). Store-projection-only (no live daemon query — doyle ruling). (v0.10.0)",
2026-06-21T08:16:00.3503741Z       "requiredStages": [
2026-06-21T08:16:00.3503859Z         "impl",
2026-06-21T08:16:00.3503984Z         "unit"
2026-06-21T08:16:00.3504089Z       ],
2026-06-21T08:16:00.3504193Z       "stages": {
2026-06-21T08:16:00.3504323Z         "doc": {
2026-06-21T08:16:00.3504451Z           "complete": false,
2026-06-21T08:16:00.3504561Z           "evidence": []
2026-06-21T08:16:00.3504666Z         },
2026-06-21T08:16:00.3504770Z         "impl": {
2026-06-21T08:16:00.3504890Z           "complete": true,
2026-06-21T08:16:00.3505000Z           "evidence": [
2026-06-21T08:16:00.3505109Z             {
2026-06-21T08:16:00.3505258Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3505371Z               "line": 248
2026-06-21T08:16:00.3505471Z             },
2026-06-21T08:16:00.3505578Z             {
2026-06-21T08:16:00.3505714Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3505825Z               "line": 263
2026-06-21T08:16:00.3505930Z             }
2026-06-21T08:16:00.3506034Z           ]
2026-06-21T08:16:00.3506142Z         },
2026-06-21T08:16:00.3506365Z         "int": {
2026-06-21T08:16:00.3506469Z           "complete": false,
2026-06-21T08:16:00.3506675Z           "evidence": []
2026-06-21T08:16:00.3506798Z         },
2026-06-21T08:16:00.3506914Z         "unit": {
2026-06-21T08:16:00.3507032Z           "complete": true,
2026-06-21T08:16:00.3507137Z           "evidence": [
2026-06-21T08:16:00.3507242Z             {
2026-06-21T08:16:00.3507375Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.3507486Z               "line": 476
2026-06-21T08:16:00.3507585Z             },
2026-06-21T08:16:00.3507695Z             {
2026-06-21T08:16:00.3507839Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3507947Z               "line": 753
2026-06-21T08:16:00.3508057Z             },
2026-06-21T08:16:00.3508149Z             {
2026-06-21T08:16:00.3508300Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3508411Z               "line": 886
2026-06-21T08:16:00.3508516Z             },
2026-06-21T08:16:00.3508633Z             {
2026-06-21T08:16:00.3508767Z               "path": "crates/spt/src/picker/view.rs",
2026-06-21T08:16:00.3508885Z               "line": 455
2026-06-21T08:16:00.3509055Z             }
2026-06-21T08:16:00.3509160Z           ]
2026-06-21T08:16:00.3509260Z         }
2026-06-21T08:16:00.3509370Z       }
2026-06-21T08:16:00.3509480Z     },
2026-06-21T08:16:00.3509589Z     {
2026-06-21T08:16:00.3509709Z       "id": "REQ-PICKER-2",
2026-06-21T08:16:00.3511653Z       "title": "The picker's project-history loader reads the git-backed context store, not the bare working tree: data.rs project_history_for enumerates an endpoint's projects via the BranchStore branch set (the context store keeps per-project context in git branches — contextstore::project_branch(project_id), checked out to projects/<project>/<id>/ only on-demand) instead of raw std::fs::read_dir over the empty working tree (which returned empty for ALL rows incl wall-a — the operator bug). Ordered newest→oldest by branch commit recency; degrades to empty (informational pane), never fails. (v0.10.0)",
2026-06-21T08:16:00.3511791Z       "requiredStages": [
2026-06-21T08:16:00.3511915Z         "impl",
2026-06-21T08:16:00.3512021Z         "unit"
2026-06-21T08:16:00.3512125Z       ],
2026-06-21T08:16:00.3512234Z       "stages": {
2026-06-21T08:16:00.3512340Z         "doc": {
2026-06-21T08:16:00.3512458Z           "complete": false,
2026-06-21T08:16:00.3512569Z           "evidence": []
2026-06-21T08:16:00.3512674Z         },
2026-06-21T08:16:00.3512778Z         "impl": {
2026-06-21T08:16:00.3512898Z           "complete": true,
2026-06-21T08:16:00.3513007Z           "evidence": [
2026-06-21T08:16:00.3513112Z             {
2026-06-21T08:16:00.3513271Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.3513378Z               "line": 183
2026-06-21T08:16:00.3513494Z             },
2026-06-21T08:16:00.3513595Z             {
2026-06-21T08:16:00.3513736Z               "path": "crates/spt/src/picker/data.rs",
2026-06-21T08:16:00.3513869Z               "line": 296
2026-06-21T08:16:00.3513968Z             }
2026-06-21T08:16:00.3514082Z           ]
2026-06-21T08:16:00.3514186Z         },
2026-06-21T08:16:00.3514297Z         "int": {
2026-06-21T08:16:00.3514410Z           "complete": false,
2026-06-21T08:16:00.3514530Z           "evidence": []
2026-06-21T08:16:00.3514640Z         },
2026-06-21T08:16:00.3514739Z         "unit": {
2026-06-21T08:16:00.3514855Z           "complete": true,
2026-06-21T08:16:00.3514954Z           "evidence": [
2026-06-21T08:16:00.3515063Z             {
2026-06-21T08:16:00.3515217Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.3515335Z               "line": 655
2026-06-21T08:16:00.3515431Z             }
2026-06-21T08:16:00.3515536Z           ]
2026-06-21T08:16:00.3515636Z         }
2026-06-21T08:16:00.3515740Z       }
2026-06-21T08:16:00.3515846Z     },
2026-06-21T08:16:00.3515950Z     {
2026-06-21T08:16:00.3516070Z       "id": "REQ-PICKER-3",
2026-06-21T08:16:00.3518666Z       "title": "A self-owned subnet row reconciles its status to the LIVE roster: a Subnet-category row whose endpoint_id overlaps a local (is_local) roster id is self-owned (this node hosts it), so its status square is OVERRIDDEN with the live roster status — the WAN registry snapshot (wansend::load_snapshots) is a periodically-advertised, independently-stale projection, while the local roster (p.alive) is ground truth for an endpoint this node hosts. One status square per endpoint (CONTEXT.md:348-350 — nothing licenses opposite squares for one endpoint across its Local vs Subnet listings). A reconcile pass in data.rs after the local_rows + subnet_rows gather; BOTH category listings are preserved (Local + Subnet are legitimately distinct views — you are in your own subnet), only the STATUS is unified. (v0.10.0)",
2026-06-21T08:16:00.3518908Z       "requiredStages": [
2026-06-21T08:16:00.3519076Z         "impl",
2026-06-21T08:16:00.3519184Z         "unit"
2026-06-21T08:16:00.3519293Z       ],
2026-06-21T08:16:00.3519412Z       "stages": {
2026-06-21T08:16:00.3519524Z         "doc": {
2026-06-21T08:16:00.3519663Z           "complete": false,
2026-06-21T08:16:00.3519774Z           "evidence": []
2026-06-21T08:16:00.3519872Z         },
2026-06-21T08:16:00.3519973Z         "impl": {
2026-06-21T08:16:00.3520078Z           "complete": true,
2026-06-21T08:16:00.3520192Z           "evidence": [
2026-06-21T08:16:00.3520298Z             {
2026-06-21T08:16:00.3520450Z               "path": "crates/spt/src/picker/data.rs",
2026-06-21T08:16:00.3520564Z               "line": 124
2026-06-21T08:16:00.3520660Z             }
2026-06-21T08:16:00.3520765Z           ]
2026-06-21T08:16:00.3520870Z         },
2026-06-21T08:16:00.3520975Z         "int": {
2026-06-21T08:16:00.3521089Z           "complete": false,
2026-06-21T08:16:00.3521198Z           "evidence": []
2026-06-21T08:16:00.3521304Z         },
2026-06-21T08:16:00.3521408Z         "unit": {
2026-06-21T08:16:00.3521528Z           "complete": true,
2026-06-21T08:16:00.3521647Z           "evidence": [
2026-06-21T08:16:00.3521757Z             {
2026-06-21T08:16:00.3521900Z               "path": "crates/spt/src/picker/data.rs",
2026-06-21T08:16:00.3522014Z               "line": 369
2026-06-21T08:16:00.3522113Z             }
2026-06-21T08:16:00.3522208Z           ]
2026-06-21T08:16:00.3522310Z         }
2026-06-21T08:16:00.3522403Z       }
2026-06-21T08:16:00.3522509Z     },
2026-06-21T08:16:00.3522604Z     {
2026-06-21T08:16:00.3522727Z       "id": "REQ-PICKER-4",
2026-06-21T08:16:00.3524656Z       "title": "The picker's Subnet category renders the canonical node LABEL, not bare key-hex: a subnet row's node renders as 'LABEL (keyprefix…)' (e.g. 'HFENDULEAM (bcead52b…)') per CONTEXT.md:650 + Instance.node_label, NOT the raw node key-hex (SPT_DEV:14efb80cb… — a picker-only regression because resource_projection→ResourceRow drops node_label, so data.rs subnet_rows uses the raw row.node). Thread node_label into the picker subnet path (ResourceRow gains node_label, or subnet_rows looks it up via the registry's node_labels) and REUSE the one canonical render (format!(\"{l} ({}…)\", key_prefix) — cli.rs / wansend.rs), never a re-implementation. (v0.10.0)",
2026-06-21T08:16:00.3524814Z       "requiredStages": [
2026-06-21T08:16:00.3524918Z         "impl",
2026-06-21T08:16:00.3525017Z         "unit"
2026-06-21T08:16:00.3525114Z       ],
2026-06-21T08:16:00.3525224Z       "stages": {
2026-06-21T08:16:00.3525332Z         "doc": {
2026-06-21T08:16:00.3525448Z           "complete": false,
2026-06-21T08:16:00.3525566Z           "evidence": []
2026-06-21T08:16:00.3525671Z         },
2026-06-21T08:16:00.3525777Z         "impl": {
2026-06-21T08:16:00.3525890Z           "complete": true,
2026-06-21T08:16:00.3526005Z           "evidence": [
2026-06-21T08:16:00.3526101Z             {
2026-06-21T08:16:00.3526263Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.3526383Z               "line": 353
2026-06-21T08:16:00.3526482Z             },
2026-06-21T08:16:00.3526717Z             {
2026-06-21T08:16:00.3526859Z               "path": "crates/spt/src/picker/data.rs",
2026-06-21T08:16:00.3527074Z               "line": 105
2026-06-21T08:16:00.3527173Z             }
2026-06-21T08:16:00.3527277Z           ]
2026-06-21T08:16:00.3527382Z         },
2026-06-21T08:16:00.3527480Z         "int": {
2026-06-21T08:16:00.3527609Z           "complete": false,
2026-06-21T08:16:00.3527719Z           "evidence": []
2026-06-21T08:16:00.3527823Z         },
2026-06-21T08:16:00.3527923Z         "unit": {
2026-06-21T08:16:00.3528043Z           "complete": true,
2026-06-21T08:16:00.3528162Z           "evidence": [
2026-06-21T08:16:00.3528267Z             {
2026-06-21T08:16:00.3528415Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.3528528Z               "line": 1246
2026-06-21T08:16:00.3528635Z             },
2026-06-21T08:16:00.3528739Z             {
2026-06-21T08:16:00.3528872Z               "path": "crates/spt/src/picker/data.rs",
2026-06-21T08:16:00.3529082Z               "line": 427
2026-06-21T08:16:00.3529182Z             }
2026-06-21T08:16:00.3529288Z           ]
2026-06-21T08:16:00.3529387Z         }
2026-06-21T08:16:00.3529492Z       }
2026-06-21T08:16:00.3529594Z     },
2026-06-21T08:16:00.3529697Z     {
2026-06-21T08:16:00.3529810Z       "id": "REQ-PICKER-5",
2026-06-21T08:16:00.3532855Z       "title": "`spt endpoint list` (bare/subnet view) renders an ALIGNED table with canonical node labels: cmd_endpoint_list prints subnet rows with `\\t` TAB separators (cli.rs:~1651-1662) so variable-width endpoint_ids snap fields to different tab-stops → a RAGGED status column (operator screenshot: X/help statuses misaligned vs rt-*/sptc-*/wall-a); and it calls the node renderer with no label → bare key-hex for every row (SAME ResourceRow-drops-node_label root as REQ-PICKER-4). FIX: max-width per-column padding (mirror render_node_rows' pad, pad by char count not byte len — '…' is multibyte) replacing the tabs, and render the node via the shared node_label_display now that ResourceRow carries node_label (REQ-PICKER-4). Extract a pure row-formatter seam so the alignment+label is unit-testable. ALSO: the bare list is the SUBNET view (a just-run LOCAL perch is invisible cross-subnet until the next advertise tick), so emit a `--local` hint line so a freshly-run endpoint isn't perceived as lost. (v0.10.0; operator-flagged + doyle dispatch 2026-06-17)",
2026-06-21T08:16:00.3533026Z       "requiredStages": [
2026-06-21T08:16:00.3533132Z         "impl",
2026-06-21T08:16:00.3533232Z         "unit"
2026-06-21T08:16:00.3533340Z       ],
2026-06-21T08:16:00.3533451Z       "stages": {
2026-06-21T08:16:00.3533556Z         "doc": {
2026-06-21T08:16:00.3533679Z           "complete": false,
2026-06-21T08:16:00.3533785Z           "evidence": []
2026-06-21T08:16:00.3533890Z         },
2026-06-21T08:16:00.3533998Z         "impl": {
2026-06-21T08:16:00.3534114Z           "complete": true,
2026-06-21T08:16:00.3534223Z           "evidence": [
2026-06-21T08:16:00.3534328Z             {
2026-06-21T08:16:00.3534471Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3534580Z               "line": 1802
2026-06-21T08:16:00.3534682Z             }
2026-06-21T08:16:00.3534781Z           ]
2026-06-21T08:16:00.3534889Z         },
2026-06-21T08:16:00.3534994Z         "int": {
2026-06-21T08:16:00.3535117Z           "complete": false,
2026-06-21T08:16:00.3535235Z           "evidence": []
2026-06-21T08:16:00.3535325Z         },
2026-06-21T08:16:00.3535437Z         "unit": {
2026-06-21T08:16:00.3535549Z           "complete": true,
2026-06-21T08:16:00.3535664Z           "evidence": [
2026-06-21T08:16:00.3535765Z             {
2026-06-21T08:16:00.3535907Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3536023Z               "line": 7526
2026-06-21T08:16:00.3536127Z             }
2026-06-21T08:16:00.3536236Z           ]
2026-06-21T08:16:00.3536337Z         }
2026-06-21T08:16:00.3536437Z       }
2026-06-21T08:16:00.3536522Z     },
2026-06-21T08:16:00.3536619Z     {
2026-06-21T08:16:00.3536895Z       "id": "REQ-PICKER-ADAPTER-DESCRIPTION",
2026-06-21T08:16:00.3538294Z       "title": "The Create-new adapter-CHOICE screen of `spt endpoint run`'s picker shows a right-hand Description panel (like the Pick-existing endpoint picker's two-pane) surfacing per-adapter detail: install date, last-updated, adapter TYPE / the endpoint types it hosts, and the adapter description — so the user can see WHAT each adapter is before choosing it (today the selector lists bare names). DEFERRED fast-follow to v0.12.0 (operator 2026-06-18). (post-v0.12.0)",
2026-06-21T08:16:00.3538512Z       "requiredStages": [],
2026-06-21T08:16:00.3538622Z       "stages": {
2026-06-21T08:16:00.3538726Z         "doc": {
2026-06-21T08:16:00.3538852Z           "complete": false,
2026-06-21T08:16:00.3539046Z           "evidence": []
2026-06-21T08:16:00.3539156Z         },
2026-06-21T08:16:00.3539265Z         "impl": {
2026-06-21T08:16:00.3539375Z           "complete": false,
2026-06-21T08:16:00.3539486Z           "evidence": []
2026-06-21T08:16:00.3539614Z         },
2026-06-21T08:16:00.3539719Z         "int": {
2026-06-21T08:16:00.3539834Z           "complete": false,
2026-06-21T08:16:00.3539957Z           "evidence": []
2026-06-21T08:16:00.3540052Z         },
2026-06-21T08:16:00.3540168Z         "unit": {
2026-06-21T08:16:00.3540276Z           "complete": false,
2026-06-21T08:16:00.3540394Z           "evidence": []
2026-06-21T08:16:00.3540499Z         }
2026-06-21T08:16:00.3540602Z       }
2026-06-21T08:16:00.3540711Z     },
2026-06-21T08:16:00.3540812Z     {
2026-06-21T08:16:00.3540950Z       "id": "REQ-PICKER-HISTORY-FRESH",
2026-06-21T08:16:00.3542076Z       "title": "The `spt endpoint run` picker shows project history for FRESH endpoints (operator-raised v0.12.0 real-harness finding). Symptom: a fresh endpoint shows no project history in the picker. ROOT TBD — investigate the project-history loader (v0.10.0 PICKER-2, picker/data.rs) before fixing: distinguish a real loader bug from 'fresh = no history yet' semantics. (v0.12.1)",
2026-06-21T08:16:00.3542209Z       "requiredStages": [
2026-06-21T08:16:00.3542319Z         "impl",
2026-06-21T08:16:00.3542429Z         "unit"
2026-06-21T08:16:00.3542538Z       ],
2026-06-21T08:16:00.3542644Z       "stages": {
2026-06-21T08:16:00.3542753Z         "doc": {
2026-06-21T08:16:00.3542862Z           "complete": false,
2026-06-21T08:16:00.3542973Z           "evidence": []
2026-06-21T08:16:00.3543078Z         },
2026-06-21T08:16:00.3543186Z         "impl": {
2026-06-21T08:16:00.3543314Z           "complete": true,
2026-06-21T08:16:00.3543415Z           "evidence": [
2026-06-21T08:16:00.3543524Z             {
2026-06-21T08:16:00.3543663Z               "path": "crates/spt/src/picker/data.rs",
2026-06-21T08:16:00.3543773Z               "line": 275
2026-06-21T08:16:00.3543876Z             }
2026-06-21T08:16:00.3543978Z           ]
2026-06-21T08:16:00.3544082Z         },
2026-06-21T08:16:00.3544181Z         "int": {
2026-06-21T08:16:00.3544297Z           "complete": false,
2026-06-21T08:16:00.3544425Z           "evidence": []
2026-06-21T08:16:00.3544530Z         },
2026-06-21T08:16:00.3544641Z         "unit": {
2026-06-21T08:16:00.3544759Z           "complete": true,
2026-06-21T08:16:00.3544878Z           "evidence": [
2026-06-21T08:16:00.3544979Z             {
2026-06-21T08:16:00.3545126Z               "path": "crates/spt/src/picker/data.rs",
2026-06-21T08:16:00.3545237Z               "line": 400
2026-06-21T08:16:00.3545327Z             }
2026-06-21T08:16:00.3545430Z           ]
2026-06-21T08:16:00.3545530Z         }
2026-06-21T08:16:00.3545649Z       }
2026-06-21T08:16:00.3545747Z     },
2026-06-21T08:16:00.3545852Z     {
2026-06-21T08:16:00.3545982Z       "id": "REQ-PICKER-ONLINE-ACTION",
2026-06-21T08:16:00.3547542Z       "title": "The `spt endpoint run` picker shows the correct action for an ALREADY-ONLINE endpoint — Attach, NOT 'Start now' (operator-raised v0.12.0 real-harness finding). Symptom: the picker offers 'Start now' for endpoints that are already online. ROOT TBD — investigate the status→action mapping (v0.10.0 PICKER-1 four-state status, picker/model.rs): is it reading live/online state correctly, or rendering stale/wedged broker state (i.e. partly a symptom of the broker wedge / status=online latch)? Fix so online → Attach. (v0.12.1)",
2026-06-21T08:16:00.3547880Z       "requiredStages": [
2026-06-21T08:16:00.3547984Z         "impl",
2026-06-21T08:16:00.3548085Z         "unit"
2026-06-21T08:16:00.3548195Z       ],
2026-06-21T08:16:00.3548297Z       "stages": {
2026-06-21T08:16:00.3548407Z         "doc": {
2026-06-21T08:16:00.3548517Z           "complete": false,
2026-06-21T08:16:00.3548634Z           "evidence": []
2026-06-21T08:16:00.3548739Z         },
2026-06-21T08:16:00.3548844Z         "impl": {
2026-06-21T08:16:00.3549015Z           "complete": true,
2026-06-21T08:16:00.3549126Z           "evidence": [
2026-06-21T08:16:00.3549230Z             {
2026-06-21T08:16:00.3549373Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3549487Z               "line": 654
2026-06-21T08:16:00.3549611Z             }
2026-06-21T08:16:00.3549712Z           ]
2026-06-21T08:16:00.3549816Z         },
2026-06-21T08:16:00.3549930Z         "int": {
2026-06-21T08:16:00.3550036Z           "complete": false,
2026-06-21T08:16:00.3550150Z           "evidence": []
2026-06-21T08:16:00.3550250Z         },
2026-06-21T08:16:00.3550351Z         "unit": {
2026-06-21T08:16:00.3550465Z           "complete": true,
2026-06-21T08:16:00.3550579Z           "evidence": [
2026-06-21T08:16:00.3550680Z             {
2026-06-21T08:16:00.3550826Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3550940Z               "line": 1078
2026-06-21T08:16:00.3551041Z             },
2026-06-21T08:16:00.3551143Z             {
2026-06-21T08:16:00.3551286Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3551401Z               "line": 1092
2026-06-21T08:16:00.3551501Z             }
2026-06-21T08:16:00.3551606Z           ]
2026-06-21T08:16:00.3551711Z         }
2026-06-21T08:16:00.3551829Z       }
2026-06-21T08:16:00.3554862Z     },
2026-06-21T08:16:00.3554995Z     {
2026-06-21T08:16:00.3555143Z       "id": "REQ-PICKER-UX-V013",
2026-06-21T08:16:00.3556870Z       "title": "`spt endpoint run` picker UX (v0.13.0 operator dogfooding): (1) SKIP the first screen — open directly on 'Pick existing'; `n` jumps to 'Create new'. (2) AUTO-ATTACH after both Start-new AND Resume-from-history (both currently don't attach and show no stdout); add an `h` shortcut to run headless (no attach). (3) 'controlled by' shows the node NAME (node_label_display), not the raw hex. (4) Clean up Start-new output — drop the Rust `pid=Some(142748)` leak and the 'harness binds its perch on startup' internals; user-friendly, not a process log. (v0.13.0)",
2026-06-21T08:16:00.3557008Z       "requiredStages": [],
2026-06-21T08:16:00.3557124Z       "stages": {
2026-06-21T08:16:00.3557228Z         "doc": {
2026-06-21T08:16:00.3557352Z           "complete": false,
2026-06-21T08:16:00.3557462Z           "evidence": []
2026-06-21T08:16:00.3557586Z         },
2026-06-21T08:16:00.3557695Z         "impl": {
2026-06-21T08:16:00.3557819Z           "complete": false,
2026-06-21T08:16:00.3557957Z           "evidence": []
2026-06-21T08:16:00.3558063Z         },
2026-06-21T08:16:00.3558172Z         "int": {
2026-06-21T08:16:00.3558286Z           "complete": false,
2026-06-21T08:16:00.3558402Z           "evidence": []
2026-06-21T08:16:00.3558505Z         },
2026-06-21T08:16:00.3558611Z         "unit": {
2026-06-21T08:16:00.3558726Z           "complete": false,
2026-06-21T08:16:00.3558834Z           "evidence": []
2026-06-21T08:16:00.3558934Z         }
2026-06-21T08:16:00.3559128Z       }
2026-06-21T08:16:00.3559232Z     },
2026-06-21T08:16:00.3559332Z     {
2026-06-21T08:16:00.3559462Z       "id": "REQ-PRES-1",
2026-06-21T08:16:00.3560853Z       "title": "Presence resolution: the presence datum (last_active_node, last_active_endpoint, ts) gossiped subnet-wide via the agent-interaction heartbeat (rides registry distribution, visibility-gated) + one first-class most-recently-active resolution API consumed by notif first-fire, update-consent delivery, consent escalation, and shell wake resolution (M5 scope decision 1: resolution only — the PresenceChannel endpoint stays deferred)",
2026-06-21T08:16:00.3561207Z       "requiredStages": [
2026-06-21T08:16:00.3561312Z         "impl",
2026-06-21T08:16:00.3561410Z         "unit",
2026-06-21T08:16:00.3561514Z         "int"
2026-06-21T08:16:00.3561620Z       ],
2026-06-21T08:16:00.3561732Z       "stages": {
2026-06-21T08:16:00.3561841Z         "doc": {
2026-06-21T08:16:00.3561957Z           "complete": true,
2026-06-21T08:16:00.3562070Z           "evidence": [
2026-06-21T08:16:00.3562166Z             {
2026-06-21T08:16:00.3562304Z               "path": "docs/DEFERRED.md",
2026-06-21T08:16:00.3562418Z               "line": 11
2026-06-21T08:16:00.3562524Z             }
2026-06-21T08:16:00.3562629Z           ]
2026-06-21T08:16:00.3562733Z         },
2026-06-21T08:16:00.3562839Z         "impl": {
2026-06-21T08:16:00.3562976Z           "complete": true,
2026-06-21T08:16:00.3563081Z           "evidence": [
2026-06-21T08:16:00.3563197Z             {
2026-06-21T08:16:00.3563353Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T08:16:00.3563468Z               "line": 515
2026-06-21T08:16:00.3563568Z             },
2026-06-21T08:16:00.3563677Z             {
2026-06-21T08:16:00.3563827Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T08:16:00.3563934Z               "line": 567
2026-06-21T08:16:00.3564035Z             },
2026-06-21T08:16:00.3564141Z             {
2026-06-21T08:16:00.3564282Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3564391Z               "line": 188
2026-06-21T08:16:00.3564497Z             },
2026-06-21T08:16:00.3564601Z             {
2026-06-21T08:16:00.3564740Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3564864Z               "line": 214
2026-06-21T08:16:00.3564964Z             },
2026-06-21T08:16:00.3565069Z             {
2026-06-21T08:16:00.3565207Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-21T08:16:00.3565321Z               "line": 28
2026-06-21T08:16:00.3565427Z             },
2026-06-21T08:16:00.3565522Z             {
2026-06-21T08:16:00.3565669Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-21T08:16:00.3565780Z               "line": 105
2026-06-21T08:16:00.3565889Z             },
2026-06-21T08:16:00.3566038Z             {
2026-06-21T08:16:00.3566184Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-21T08:16:00.3566304Z               "line": 161
2026-06-21T08:16:00.3566405Z             },
2026-06-21T08:16:00.3566513Z             {
2026-06-21T08:16:00.3566660Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-21T08:16:00.3566779Z               "line": 180
2026-06-21T08:16:00.3566882Z             },
2026-06-21T08:16:00.3566992Z             {
2026-06-21T08:16:00.3567154Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.3567258Z               "line": 421
2026-06-21T08:16:00.3567369Z             },
2026-06-21T08:16:00.3567483Z             {
2026-06-21T08:16:00.3567636Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T08:16:00.3567741Z               "line": 289
2026-06-21T08:16:00.3567845Z             },
2026-06-21T08:16:00.3567956Z             {
2026-06-21T08:16:00.3568098Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T08:16:00.3568202Z               "line": 336
2026-06-21T08:16:00.3568304Z             },
2026-06-21T08:16:00.3568403Z             {
2026-06-21T08:16:00.3568546Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T08:16:00.3568652Z               "line": 362
2026-06-21T08:16:00.3568755Z             },
2026-06-21T08:16:00.3568851Z             {
2026-06-21T08:16:00.3569084Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.3569234Z               "line": 100
2026-06-21T08:16:00.3569513Z             }
2026-06-21T08:16:00.3569618Z           ]
2026-06-21T08:16:00.3569721Z         },
2026-06-21T08:16:00.3569916Z         "int": {
2026-06-21T08:16:00.3570017Z           "complete": true,
2026-06-21T08:16:00.3570140Z           "evidence": [
2026-06-21T08:16:00.3570232Z             {
2026-06-21T08:16:00.3570388Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T08:16:00.3570503Z               "line": 563
2026-06-21T08:16:00.3570603Z             },
2026-06-21T08:16:00.3570708Z             {
2026-06-21T08:16:00.3570851Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.3570960Z               "line": 747
2026-06-21T08:16:00.3571065Z             },
2026-06-21T08:16:00.3571171Z             {
2026-06-21T08:16:00.3571317Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.3571428Z               "line": 1165
2026-06-21T08:16:00.3571534Z             }
2026-06-21T08:16:00.3571637Z           ]
2026-06-21T08:16:00.3571757Z         },
2026-06-21T08:16:00.3571853Z         "unit": {
2026-06-21T08:16:00.3571961Z           "complete": true,
2026-06-21T08:16:00.3572074Z           "evidence": [
2026-06-21T08:16:00.3572170Z             {
2026-06-21T08:16:00.3572316Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.3572431Z               "line": 674
2026-06-21T08:16:00.3572531Z             },
2026-06-21T08:16:00.3572630Z             {
2026-06-21T08:16:00.3572774Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-21T08:16:00.3572889Z               "line": 238
2026-06-21T08:16:00.3572993Z             },
2026-06-21T08:16:00.3573084Z             {
2026-06-21T08:16:00.3573232Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-21T08:16:00.3573350Z               "line": 269
2026-06-21T08:16:00.3573442Z             },
2026-06-21T08:16:00.3573551Z             {
2026-06-21T08:16:00.3573699Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-21T08:16:00.3573818Z               "line": 305
2026-06-21T08:16:00.3573927Z             },
2026-06-21T08:16:00.3574029Z             {
2026-06-21T08:16:00.3574184Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-21T08:16:00.3574285Z               "line": 336
2026-06-21T08:16:00.3574392Z             },
2026-06-21T08:16:00.3574499Z             {
2026-06-21T08:16:00.3574649Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.3574767Z               "line": 1217
2026-06-21T08:16:00.3574866Z             },
2026-06-21T08:16:00.3574971Z             {
2026-06-21T08:16:00.3575115Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.3575228Z               "line": 1163
2026-06-21T08:16:00.3575333Z             }
2026-06-21T08:16:00.3575439Z           ]
2026-06-21T08:16:00.3575548Z         }
2026-06-21T08:16:00.3575649Z       }
2026-06-21T08:16:00.3575758Z     },
2026-06-21T08:16:00.3575862Z     {
2026-06-21T08:16:00.3575983Z       "id": "REQ-RC-1",
2026-06-21T08:16:00.3578019Z       "title": "`spt rc <id>` — user CLI attaching a local terminal to a broker-held PTY, reusing the cross-node attach machinery (attach.rs request_attach → send_attach_input pump, spt-net AttachRecord codec); local attach is the degenerate single-node case of the cross-node path (rides REQ-TERM-3 byte-stream streaming). Read-only `--view` (watch, no stdin forwarded). Clean detach that does NOT terminate the broker-held session (KNOWN-HAZARDS: PTY ownership stays with the broker; no termination on detach). Explicit detach keybind that cannot collide with harness passthrough input (legacy capsule used a ctrl-b prefix); documented. ConPTY DSR auto-answer in the attach reader (hazard 5.5).",
2026-06-21T08:16:00.3578147Z       "requiredStages": [
2026-06-21T08:16:00.3578258Z         "impl",
2026-06-21T08:16:00.3578362Z         "unit",
2026-06-21T08:16:00.3578467Z         "int"
2026-06-21T08:16:00.3578573Z       ],
2026-06-21T08:16:00.3578682Z       "stages": {
2026-06-21T08:16:00.3578782Z         "doc": {
2026-06-21T08:16:00.3579091Z           "complete": false,
2026-06-21T08:16:00.3579207Z           "evidence": []
2026-06-21T08:16:00.3579450Z         },
2026-06-21T08:16:00.3579555Z         "impl": {
2026-06-21T08:16:00.3579669Z           "complete": true,
2026-06-21T08:16:00.3579775Z           "evidence": [
2026-06-21T08:16:00.3579894Z             {
2026-06-21T08:16:00.3580063Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.3580178Z               "line": 944
2026-06-21T08:16:00.3580276Z             },
2026-06-21T08:16:00.3580380Z             {
2026-06-21T08:16:00.3580534Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.3580652Z               "line": 2060
2026-06-21T08:16:00.3580758Z             },
2026-06-21T08:16:00.3580867Z             {
2026-06-21T08:16:00.3581014Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.3581140Z               "line": 1017
2026-06-21T08:16:00.3581235Z             },
2026-06-21T08:16:00.3581363Z             {
2026-06-21T08:16:00.3581511Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.3581634Z               "line": 1051
2026-06-21T08:16:00.3595550Z             },
2026-06-21T08:16:00.3595745Z             {
2026-06-21T08:16:00.3595930Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3596053Z               "line": 22
2026-06-21T08:16:00.3596163Z             },
2026-06-21T08:16:00.3596268Z             {
2026-06-21T08:16:00.3596405Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3596521Z               "line": 701
2026-06-21T08:16:00.3596625Z             }
2026-06-21T08:16:00.3596730Z           ]
2026-06-21T08:16:00.3596831Z         },
2026-06-21T08:16:00.3596944Z         "int": {
2026-06-21T08:16:00.3597069Z           "complete": true,
2026-06-21T08:16:00.3597183Z           "evidence": [
2026-06-21T08:16:00.3597292Z             {
2026-06-21T08:16:00.3597465Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T08:16:00.3597597Z               "line": 258
2026-06-21T08:16:00.3597699Z             },
2026-06-21T08:16:00.3597804Z             {
2026-06-21T08:16:00.3597965Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T08:16:00.3598076Z               "line": 285
2026-06-21T08:16:00.3598179Z             },
2026-06-21T08:16:00.3598288Z             {
2026-06-21T08:16:00.3598431Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T08:16:00.3598543Z               "line": 413
2026-06-21T08:16:00.3598638Z             }
2026-06-21T08:16:00.3598734Z           ]
2026-06-21T08:16:00.3598839Z         },
2026-06-21T08:16:00.3599045Z         "unit": {
2026-06-21T08:16:00.3599158Z           "complete": true,
2026-06-21T08:16:00.3599287Z           "evidence": [
2026-06-21T08:16:00.3599402Z             {
2026-06-21T08:16:00.3599602Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.3599716Z               "line": 1415
2026-06-21T08:16:00.3599821Z             },
2026-06-21T08:16:00.3599926Z             {
2026-06-21T08:16:00.3600050Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3600174Z               "line": 1133
2026-06-21T08:16:00.3600280Z             },
2026-06-21T08:16:00.3600388Z             {
2026-06-21T08:16:00.3600522Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3600643Z               "line": 1162
2026-06-21T08:16:00.3600751Z             },
2026-06-21T08:16:00.3600856Z             {
2026-06-21T08:16:00.3600990Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3601108Z               "line": 1175
2026-06-21T08:16:00.3601212Z             }
2026-06-21T08:16:00.3601303Z           ]
2026-06-21T08:16:00.3601411Z         }
2026-06-21T08:16:00.3601515Z       }
2026-06-21T08:16:00.3601621Z     },
2026-06-21T08:16:00.3601725Z     {
2026-06-21T08:16:00.3601854Z       "id": "REQ-RC-KEY-VT-TRANSLATE",
2026-06-21T08:16:00.3607605Z       "title": "On Windows, `spt rc` translates CONSOLE KEY EVENTS to standard xterm VT so ALL keys reach the hosted harness — arrows/Home/End/PgUp/PgDn/Insert/Delete/F-keys, every modifier combo, Backspace/Ctrl+Backspace — not just the byte-emitting ones. ROOT (operator HITL, doyle /diagnose): `spt rc` reads raw STDIN BYTES (spawn_stdin_reader, std::io::stdin().read); on the Windows LEGACY console (no ENABLE_VIRTUAL_TERMINAL_INPUT) the special keys produce console KEY_EVENTs, NOT stdin bytes, so the byte-pump sees nothing → those keys are DEAD. Enabling ENABLE_VIRTUAL_TERMINAL_INPUT was rejected (W7 dc07c39): on Windows Terminal it yields harness-specific win32-input-mode + broke ctrl-b detach. FIX (agnostic, full fidelity): on Windows, replace the stdin byte-read with a crossterm EVENT source (crossterm 0.28 already a dep; the picker already reads events) and translate each KeyEvent → STANDARD xterm VT bytes via a PURE translate_key_event(KeyEvent)->Vec<u8> (copy a known-correct xterm table verbatim, ADR-0001 spirit), forwarded through the SAME rc pump — the harness receives ordinary xterm VT (harness-AGNOSTIC, no win32-input-mode). Press-only (drop Repeat/Release). Detach stays the ctrl-b+'d' PREFIX, event-sourced (doyle Option B): Ctrl+B arms; armed+plain-'d'⇒Detach; armed+Ctrl+B⇒emit literal 0x02; armed+other⇒0x02 then translate(other). Non-tty stdin (piped/tests) → FALL BACK to the byte-read path (keeps e2e byte-injection working). UNIX UNCHANGED (its raw-mode byte stream already delivers proper VT; cfg-split, zero Unix regression). SUPERSEDES the W7 normalize_key_byte swap on Windows — the translator emits 0x7f for Backspace and 0x08 for Ctrl+Backspace natively (REQ-HAZARD-RC-INPUT-KEY-ENCODING folded in). NO int (a live interactive console can't be driven in CI — HITL, REQ-RUN-PICKER/RC-1 precedent); the exhaustive non-vacuous translate_key_event mapping unit + the event-detach unit ARE the surface. (v0.13.0)",
2026-06-21T08:16:00.3608086Z       "requiredStages": [
2026-06-21T08:16:00.3608196Z         "doc",
2026-06-21T08:16:00.3608307Z         "impl",
2026-06-21T08:16:00.3608420Z         "unit"
2026-06-21T08:16:00.3608549Z       ],
2026-06-21T08:16:00.3608660Z       "stages": {
2026-06-21T08:16:00.3608763Z         "doc": {
2026-06-21T08:16:00.3608901Z           "complete": true,
2026-06-21T08:16:00.3609099Z           "evidence": [
2026-06-21T08:16:00.3609208Z             {
2026-06-21T08:16:00.3609333Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.3609466Z               "line": 345
2026-06-21T08:16:00.3609576Z             },
2026-06-21T08:16:00.3609681Z             {
2026-06-21T08:16:00.3609823Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.3609930Z               "line": 440
2026-06-21T08:16:00.3610034Z             }
2026-06-21T08:16:00.3610143Z           ]
2026-06-21T08:16:00.3610249Z         },
2026-06-21T08:16:00.3610358Z         "impl": {
2026-06-21T08:16:00.3610476Z           "complete": true,
2026-06-21T08:16:00.3610583Z           "evidence": [
2026-06-21T08:16:00.3610682Z             {
2026-06-21T08:16:00.3610806Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3610930Z               "line": 226
2026-06-21T08:16:00.3611035Z             },
2026-06-21T08:16:00.3611141Z             {
2026-06-21T08:16:00.3611263Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3611368Z               "line": 285
2026-06-21T08:16:00.3611470Z             },
2026-06-21T08:16:00.3611583Z             {
2026-06-21T08:16:00.3611715Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3611820Z               "line": 300
2026-06-21T08:16:00.3611933Z             },
2026-06-21T08:16:00.3612037Z             {
2026-06-21T08:16:00.3612162Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3612266Z               "line": 315
2026-06-21T08:16:00.3612375Z             },
2026-06-21T08:16:00.3612477Z             {
2026-06-21T08:16:00.3612591Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3612704Z               "line": 364
2026-06-21T08:16:00.3612806Z             }
2026-06-21T08:16:00.3612910Z           ]
2026-06-21T08:16:00.3613116Z         },
2026-06-21T08:16:00.3613230Z         "int": {
2026-06-21T08:16:00.3613339Z           "complete": false,
2026-06-21T08:16:00.3613572Z           "evidence": []
2026-06-21T08:16:00.3613673Z         },
2026-06-21T08:16:00.3613779Z         "unit": {
2026-06-21T08:16:00.3613906Z           "complete": true,
2026-06-21T08:16:00.3614017Z           "evidence": [
2026-06-21T08:16:00.3614127Z             {
2026-06-21T08:16:00.3614253Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3614363Z               "line": 1190
2026-06-21T08:16:00.3614472Z             },
2026-06-21T08:16:00.3614571Z             {
2026-06-21T08:16:00.3614695Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3614801Z               "line": 1305
2026-06-21T08:16:00.3614909Z             }
2026-06-21T08:16:00.3615010Z           ]
2026-06-21T08:16:00.3615110Z         }
2026-06-21T08:16:00.3615219Z       }
2026-06-21T08:16:00.3615320Z     },
2026-06-21T08:16:00.3615425Z     {
2026-06-21T08:16:00.3615543Z       "id": "REQ-RC-MOUSE-FORWARD",
2026-06-21T08:16:00.3619879Z       "title": "On Windows, `spt rc` must FORWARD scroll-wheel events to the harness when the harness has mouse reporting on. ROOT (operator HITL): P1's RawGuard EnableMouseCapture (added for right-click paste, REQ-RC-WIN-PASTE) makes Windows Terminal forward ALL mouse — including the scroll wheel — to rc instead of scrolling its own buffer, but the rc mouse handler dropped everything except right-button-down → scroll DIED (and WT's native scrollback is stolen by the capture). Operator ruling: keep mouse capture + right-click bracketed paste AND forward scroll to the harness. FIX (doyle design, cfg(windows), folds into the rc mouse handler): TRACK the harness's mouse-reporting mode by scanning its OUTPUT stream for the DECSET set/reset — ESC[?1000h/1002h/1003h (mouse on) + ESC[?1006h (SGR ext) and their ...l (off) — into a shared MouseMode{enabled,sgr} (pump writes from output, stdin reader reads); the scan survives a sequence SPLIT across output chunks (a bounded carry buffer). The mouse handler: right-button-DOWN -> bracketed clipboard paste (unchanged, REQ-RC-WIN-PASTE); ScrollUp/Down -> translate to an xterm SGR mouse report (ESC[<64;col+1;row+1M up / ESC[<65;..M down, 0-based crossterm -> 1-based xterm) and forward ONLY when enabled && sgr (else DROP — a legacy X10 report the harness may not parse is garbage); Moved/drag/left/middle -> DROP (scroll is the operator's need; click-forward risks garbage, no click-to-position). Unix UNCHANGED (no capture; the terminal scrolls natively). (v0.13.0)",
2026-06-21T08:16:00.3620073Z       "requiredStages": [
2026-06-21T08:16:00.3620180Z         "doc",
2026-06-21T08:16:00.3620284Z         "impl",
2026-06-21T08:16:00.3620388Z         "unit"
2026-06-21T08:16:00.3620490Z       ],
2026-06-21T08:16:00.3620594Z       "stages": {
2026-06-21T08:16:00.3620698Z         "doc": {
2026-06-21T08:16:00.3620814Z           "complete": true,
2026-06-21T08:16:00.3620928Z           "evidence": [
2026-06-21T08:16:00.3621037Z             {
2026-06-21T08:16:00.3621189Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.3621304Z               "line": 461
2026-06-21T08:16:00.3621429Z             }
2026-06-21T08:16:00.3621532Z           ]
2026-06-21T08:16:00.3621637Z         },
2026-06-21T08:16:00.3621744Z         "impl": {
2026-06-21T08:16:00.3621861Z           "complete": true,
2026-06-21T08:16:00.3621967Z           "evidence": [
2026-06-21T08:16:00.3622068Z             {
2026-06-21T08:16:00.3622200Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3622333Z               "line": 421
2026-06-21T08:16:00.3622442Z             },
2026-06-21T08:16:00.3622550Z             {
2026-06-21T08:16:00.3622674Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3622794Z               "line": 437
2026-06-21T08:16:00.3622902Z             }
2026-06-21T08:16:00.3623008Z           ]
2026-06-21T08:16:00.3623103Z         },
2026-06-21T08:16:00.3623207Z         "int": {
2026-06-21T08:16:00.3623328Z           "complete": false,
2026-06-21T08:16:00.3623546Z           "evidence": []
2026-06-21T08:16:00.3623657Z         },
2026-06-21T08:16:00.3623866Z         "unit": {
2026-06-21T08:16:00.3623982Z           "complete": true,
2026-06-21T08:16:00.3624090Z           "evidence": [
2026-06-21T08:16:00.3624195Z             {
2026-06-21T08:16:00.3624320Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3624428Z               "line": 1440
2026-06-21T08:16:00.3624543Z             },
2026-06-21T08:16:00.3624640Z             {
2026-06-21T08:16:00.3624767Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3624885Z               "line": 1459
2026-06-21T08:16:00.3624990Z             },
2026-06-21T08:16:00.3625098Z             {
2026-06-21T08:16:00.3625226Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3625342Z               "line": 1471
2026-06-21T08:16:00.3625436Z             },
2026-06-21T08:16:00.3625536Z             {
2026-06-21T08:16:00.3625665Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3625789Z               "line": 1499
2026-06-21T08:16:00.3625895Z             }
2026-06-21T08:16:00.3626009Z           ]
2026-06-21T08:16:00.3626113Z         }
2026-06-21T08:16:00.3626219Z       }
2026-06-21T08:16:00.3626328Z     },
2026-06-21T08:16:00.3626437Z     {
2026-06-21T08:16:00.3626576Z       "id": "REQ-RC-WIN-PASTE",
2026-06-21T08:16:00.3631350Z       "title": "In an `spt rc` session neither ctrl+V nor right-click pastes (CC explicitly supports ctrl+V). ROOT (doyle /diagnose): RawGuard does only enable_raw_mode (no bracketed paste / no mouse capture / no clipboard interception); the Windows console delivers a paste as synthetic per-char KEY EVENTs (no crossterm Event::Paste), and ctrl+V translates to bare ^V forwarded to CC — but CC runs DAEMON-SIDE with NO access to the operator's LOCAL clipboard, so remote paste is fundamentally CLIENT-ORIGINATED. A multi-line paste-as-keys also becomes a \\r submit-storm. FIX (doyle design, V0.13.0-P1-RC-PASTE-DESIGN.md, cfg(windows), folds into the bug-2 event path): on a paste gesture rc reads the LOCAL clipboard + forwards a BRACKETED PASTE (ESC[200~ + content + ESC[201~); CC has bracketed-paste mode on (its TUI sets ESC[?2004h) so it treats it as a paste — content intact, no submit-storm, harness-AGNOSTIC. ctrl+V: intercept Char('v')+CONTROL in the event loop -> read_clipboard -> bracketed paste. Right-click: RawGuard also EnableMouseCapture (disables console QuickEdit + enables ENABLE_MOUSE_INPUT so right-click surfaces as Event::Mouse on legacy cmd/powershell) -> right-button -> read_clipboard -> bracketed paste; DROP all other mouse (CC has no mouse features, operator-confirmed, so capture costs nothing). read_clipboard = clipboard-win crate (cfg(windows), minimal); empty/failed = clean no-op. Content forwarded VERBATIM (literal pasted text, no per-char translation). Unix UNCHANGED (its terminal pastes natively through the byte pump). DEPENDS ON P0 (a paste chunk must not wedge the broker). (v0.13.0)",
2026-06-21T08:16:00.3631521Z       "requiredStages": [
2026-06-21T08:16:00.3631621Z         "doc",
2026-06-21T08:16:00.3631726Z         "impl",
2026-06-21T08:16:00.3631845Z         "unit"
2026-06-21T08:16:00.3631956Z       ],
2026-06-21T08:16:00.3632055Z       "stages": {
2026-06-21T08:16:00.3632164Z         "doc": {
2026-06-21T08:16:00.3632285Z           "complete": true,
2026-06-21T08:16:00.3632394Z           "evidence": [
2026-06-21T08:16:00.3632498Z             {
2026-06-21T08:16:00.3632628Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T08:16:00.3632741Z               "line": 447
2026-06-21T08:16:00.3632840Z             }
2026-06-21T08:16:00.3632950Z           ]
2026-06-21T08:16:00.3633049Z         },
2026-06-21T08:16:00.3633153Z         "impl": {
2026-06-21T08:16:00.3633263Z           "complete": true,
2026-06-21T08:16:00.3633378Z           "evidence": [
2026-06-21T08:16:00.3633477Z             {
2026-06-21T08:16:00.3633607Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3633716Z               "line": 395
2026-06-21T08:16:00.3633931Z             },
2026-06-21T08:16:00.3634031Z             {
2026-06-21T08:16:00.3634164Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3634364Z               "line": 411
2026-06-21T08:16:00.3634464Z             },
2026-06-21T08:16:00.3634566Z             {
2026-06-21T08:16:00.3634698Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3634813Z               "line": 454
2026-06-21T08:16:00.3634918Z             },
2026-06-21T08:16:00.3635017Z             {
2026-06-21T08:16:00.3635147Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3635251Z               "line": 468
2026-06-21T08:16:00.3635360Z             },
2026-06-21T08:16:00.3635465Z             {
2026-06-21T08:16:00.3635587Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3635700Z               "line": 479
2026-06-21T08:16:00.3635810Z             }
2026-06-21T08:16:00.3635916Z           ]
2026-06-21T08:16:00.3636029Z         },
2026-06-21T08:16:00.3636140Z         "int": {
2026-06-21T08:16:00.3636268Z           "complete": false,
2026-06-21T08:16:00.3636387Z           "evidence": []
2026-06-21T08:16:00.3636493Z         },
2026-06-21T08:16:00.3636602Z         "unit": {
2026-06-21T08:16:00.3636716Z           "complete": true,
2026-06-21T08:16:00.3636831Z           "evidence": [
2026-06-21T08:16:00.3636936Z             {
2026-06-21T08:16:00.3637065Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3637188Z               "line": 1381
2026-06-21T08:16:00.3637293Z             },
2026-06-21T08:16:00.3637394Z             {
2026-06-21T08:16:00.3637517Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3637641Z               "line": 1402
2026-06-21T08:16:00.3637743Z             },
2026-06-21T08:16:00.3637855Z             {
2026-06-21T08:16:00.3637975Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3638081Z               "line": 1423
2026-06-21T08:16:00.3638184Z             }
2026-06-21T08:16:00.3638278Z           ]
2026-06-21T08:16:00.3638389Z         }
2026-06-21T08:16:00.3638485Z       }
2026-06-21T08:16:00.3638589Z     },
2026-06-21T08:16:00.3638694Z     {
2026-06-21T08:16:00.3638814Z       "id": "REQ-RCVIEW-1",
2026-06-21T08:16:00.3643353Z       "title": "Remote-attach controller/viewer model (CONTEXT.md:317): a session's broker OutputLog serves ONE interactive controller (input + EXCLUSIVE PTY resize; its viewport sets the size, sent on attach + every window change via crossterm Event::Resize) plus ANY NUMBER of read-only `--view` attachers (output-only, no input, no resize; client-side letterbox — center+pad when larger, clip+1-line indicator when smaller; only the local ctrl-b d detach chord). Attach intent is three-valued (`Viewer | Control | Take`, wire-default Control): Control to a FREE endpoint becomes controller, Control to a CONTROLLED endpoint is REFUSED with guidance (`--view`/`--take`) — never auto-viewer, never silent-displace. Wire adds (additive, N-1 skip-unknown): `Request.intent`, `Resize{rows,cols}` (controller-only), `Size{rows,cols}` (→viewer), `Displaced{by}` (→displaced controller). The brain-resume cursor (delivered_through, ADR-0018) tracks the CONTROLLER ONLY; viewers replay from their own from_seq and never move it. Dormancy keys on the controller ONLY: controller attach wakes / controller detach goes dormant (even with viewers present); viewer attach/detach is wake-neutral and may watch a dormant endpoint as-is. v1: viewing is gated identically to driving — a viewer runs the same access_check(Unsolicited) as a controller (watching reveals full session contents = a real disclosure); a lighter distinct watch-gate is deferred to cross-subnet/finer-consent (CONTEXT.md:317 'driving ≠ watching' = the future seam).",
2026-06-21T08:16:00.3643534Z       "requiredStages": [
2026-06-21T08:16:00.3643637Z         "doc",
2026-06-21T08:16:00.3643746Z         "impl",
2026-06-21T08:16:00.3643857Z         "unit",
2026-06-21T08:16:00.3643966Z         "int"
2026-06-21T08:16:00.3644066Z       ],
2026-06-21T08:16:00.3644295Z       "stages": {
2026-06-21T08:16:00.3644399Z         "doc": {
2026-06-21T08:16:00.3644520Z           "complete": true,
2026-06-21T08:16:00.3644733Z           "evidence": [
2026-06-21T08:16:00.3644844Z             {
2026-06-21T08:16:00.3644976Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.3645087Z               "line": 342
2026-06-21T08:16:00.3645191Z             }
2026-06-21T08:16:00.3645300Z           ]
2026-06-21T08:16:00.3645407Z         },
2026-06-21T08:16:00.3645506Z         "impl": {
2026-06-21T08:16:00.3645620Z           "complete": true,
2026-06-21T08:16:00.3645736Z           "evidence": [
2026-06-21T08:16:00.3645835Z             {
2026-06-21T08:16:00.3645990Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-21T08:16:00.3646096Z               "line": 375
2026-06-21T08:16:00.3646203Z             },
2026-06-21T08:16:00.3646303Z             {
2026-06-21T08:16:00.3646457Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.3646575Z               "line": 622
2026-06-21T08:16:00.3646690Z             },
2026-06-21T08:16:00.3646800Z             {
2026-06-21T08:16:00.3646942Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.3647081Z               "line": 633
2026-06-21T08:16:00.3647181Z             },
2026-06-21T08:16:00.3647291Z             {
2026-06-21T08:16:00.3647443Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-21T08:16:00.3647558Z               "line": 41
2026-06-21T08:16:00.3647673Z             },
2026-06-21T08:16:00.3647772Z             {
2026-06-21T08:16:00.3647920Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-21T08:16:00.3648040Z               "line": 62
2026-06-21T08:16:00.3648139Z             },
2026-06-21T08:16:00.3648250Z             {
2026-06-21T08:16:00.3648392Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.3648511Z               "line": 309
2026-06-21T08:16:00.3648618Z             },
2026-06-21T08:16:00.3648725Z             {
2026-06-21T08:16:00.3648867Z               "path": "crates/spt/src/rc.rs",
2026-06-21T08:16:00.3649045Z               "line": 701
2026-06-21T08:16:00.3649163Z             }
2026-06-21T08:16:00.3649264Z           ]
2026-06-21T08:16:00.3649388Z         },
2026-06-21T08:16:00.3649496Z         "int": {
2026-06-21T08:16:00.3649617Z           "complete": true,
2026-06-21T08:16:00.3649736Z           "evidence": [
2026-06-21T08:16:00.3649836Z             {
2026-06-21T08:16:00.3649994Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T08:16:00.3650112Z               "line": 913
2026-06-21T08:16:00.3650214Z             },
2026-06-21T08:16:00.3650322Z             {
2026-06-21T08:16:00.3650470Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T08:16:00.3650585Z               "line": 953
2026-06-21T08:16:00.3650680Z             },
2026-06-21T08:16:00.3650785Z             {
2026-06-21T08:16:00.3650923Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T08:16:00.3651041Z               "line": 1000
2026-06-21T08:16:00.3651146Z             },
2026-06-21T08:16:00.3651264Z             {
2026-06-21T08:16:00.3651410Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T08:16:00.3651521Z               "line": 1112
2026-06-21T08:16:00.3651625Z             }
2026-06-21T08:16:00.3651730Z           ]
2026-06-21T08:16:00.3651840Z         },
2026-06-21T08:16:00.3651940Z         "unit": {
2026-06-21T08:16:00.3652059Z           "complete": true,
2026-06-21T08:16:00.3652179Z           "evidence": [
2026-06-21T08:16:00.3652279Z             {
2026-06-21T08:16:00.3652432Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-21T08:16:00.3652537Z               "line": 175
2026-06-21T08:16:00.3652646Z             },
2026-06-21T08:16:00.3652746Z             {
2026-06-21T08:16:00.3652899Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-21T08:16:00.3652998Z               "line": 195
2026-06-21T08:16:00.3653105Z             }
2026-06-21T08:16:00.3653213Z           ]
2026-06-21T08:16:00.3653420Z         }
2026-06-21T08:16:00.3653537Z       }
2026-06-21T08:16:00.3653633Z     },
2026-06-21T08:16:00.3653857Z     {
2026-06-21T08:16:00.3653980Z       "id": "REQ-REACH-1",
2026-06-21T08:16:00.3654160Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-21T08:16:00.3654277Z       "requiredStages": [
2026-06-21T08:16:00.3654378Z         "impl",
2026-06-21T08:16:00.3654489Z         "unit",
2026-06-21T08:16:00.3654582Z         "int"
2026-06-21T08:16:00.3654689Z       ],
2026-06-21T08:16:00.3654803Z       "stages": {
2026-06-21T08:16:00.3654911Z         "doc": {
2026-06-21T08:16:00.3655037Z           "complete": false,
2026-06-21T08:16:00.3655147Z           "evidence": []
2026-06-21T08:16:00.3655255Z         },
2026-06-21T08:16:00.3655361Z         "impl": {
2026-06-21T08:16:00.3655480Z           "complete": true,
2026-06-21T08:16:00.3655599Z           "evidence": [
2026-06-21T08:16:00.3655704Z             {
2026-06-21T08:16:00.3655856Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.3655972Z               "line": 622
2026-06-21T08:16:00.3656081Z             },
2026-06-21T08:16:00.3656190Z             {
2026-06-21T08:16:00.3656339Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-21T08:16:00.3656461Z               "line": 76
2026-06-21T08:16:00.3656570Z             },
2026-06-21T08:16:00.3656675Z             {
2026-06-21T08:16:00.3656820Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-21T08:16:00.3656935Z               "line": 222
2026-06-21T08:16:00.3657042Z             },
2026-06-21T08:16:00.3657145Z             {
2026-06-21T08:16:00.3657289Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-21T08:16:00.3657398Z               "line": 422
2026-06-21T08:16:00.3657507Z             },
2026-06-21T08:16:00.3657613Z             {
2026-06-21T08:16:00.3657755Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-21T08:16:00.3657866Z               "line": 529
2026-06-21T08:16:00.3657993Z             },
2026-06-21T08:16:00.3658098Z             {
2026-06-21T08:16:00.3658233Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-21T08:16:00.3658352Z               "line": 39
2026-06-21T08:16:00.3658457Z             },
2026-06-21T08:16:00.3658558Z             {
2026-06-21T08:16:00.3658700Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.3658825Z               "line": 301
2026-06-21T08:16:00.3658920Z             },
2026-06-21T08:16:00.3659100Z             {
2026-06-21T08:16:00.3659258Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-21T08:16:00.3659390Z               "line": 88
2026-06-21T08:16:00.3659495Z             },
2026-06-21T08:16:00.3659601Z             {
2026-06-21T08:16:00.3659737Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-21T08:16:00.3659862Z               "line": 98
2026-06-21T08:16:00.3659967Z             },
2026-06-21T08:16:00.3660076Z             {
2026-06-21T08:16:00.3660229Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.3660353Z               "line": 233
2026-06-21T08:16:00.3660473Z             }
2026-06-21T08:16:00.3660572Z           ]
2026-06-21T08:16:00.3660682Z         },
2026-06-21T08:16:00.3660793Z         "int": {
2026-06-21T08:16:00.3660916Z           "complete": true,
2026-06-21T08:16:00.3661025Z           "evidence": [
2026-06-21T08:16:00.3661132Z             {
2026-06-21T08:16:00.3661287Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T08:16:00.3661403Z               "line": 415
2026-06-21T08:16:00.3661516Z             },
2026-06-21T08:16:00.3661611Z             {
2026-06-21T08:16:00.3661768Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T08:16:00.3661885Z               "line": 520
2026-06-21T08:16:00.3661999Z             },
2026-06-21T08:16:00.3662105Z             {
2026-06-21T08:16:00.3662257Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.3662372Z               "line": 998
2026-06-21T08:16:00.3662576Z             },
2026-06-21T08:16:00.3662682Z             {
2026-06-21T08:16:00.3662829Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.3663035Z               "line": 1383
2026-06-21T08:16:00.3663144Z             }
2026-06-21T08:16:00.3663248Z           ]
2026-06-21T08:16:00.3663345Z         },
2026-06-21T08:16:00.3663449Z         "unit": {
2026-06-21T08:16:00.3663568Z           "complete": true,
2026-06-21T08:16:00.3663674Z           "evidence": [
2026-06-21T08:16:00.3663787Z             {
2026-06-21T08:16:00.3663931Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-21T08:16:00.3664032Z               "line": 639
2026-06-21T08:16:00.3664135Z             },
2026-06-21T08:16:00.3664246Z             {
2026-06-21T08:16:00.3664393Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-21T08:16:00.3664497Z               "line": 660
2026-06-21T08:16:00.3664607Z             },
2026-06-21T08:16:00.3664715Z             {
2026-06-21T08:16:00.3664866Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T08:16:00.3664982Z               "line": 768
2026-06-21T08:16:00.3665096Z             },
2026-06-21T08:16:00.3665205Z             {
2026-06-21T08:16:00.3665344Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-21T08:16:00.3665462Z               "line": 93
2026-06-21T08:16:00.3665559Z             },
2026-06-21T08:16:00.3665664Z             {
2026-06-21T08:16:00.3665810Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-21T08:16:00.3665916Z               "line": 224
2026-06-21T08:16:00.3666030Z             },
2026-06-21T08:16:00.3666130Z             {
2026-06-21T08:16:00.3666279Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-21T08:16:00.3666397Z               "line": 96
2026-06-21T08:16:00.3666503Z             },
2026-06-21T08:16:00.3666603Z             {
2026-06-21T08:16:00.3666745Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-21T08:16:00.3666866Z               "line": 146
2026-06-21T08:16:00.3666974Z             },
2026-06-21T08:16:00.3667087Z             {
2026-06-21T08:16:00.3667226Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.3667324Z               "line": 698
2026-06-21T08:16:00.3667438Z             },
2026-06-21T08:16:00.3667539Z             {
2026-06-21T08:16:00.3667685Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-21T08:16:00.3667791Z               "line": 118
2026-06-21T08:16:00.3667901Z             },
2026-06-21T08:16:00.3668014Z             {
2026-06-21T08:16:00.3668140Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-21T08:16:00.3668259Z               "line": 148
2026-06-21T08:16:00.3668368Z             },
2026-06-21T08:16:00.3668474Z             {
2026-06-21T08:16:00.3668612Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.3668730Z               "line": 928
2026-06-21T08:16:00.3668845Z             }
2026-06-21T08:16:00.3669026Z           ]
2026-06-21T08:16:00.3669122Z         }
2026-06-21T08:16:00.3669235Z       }
2026-06-21T08:16:00.3669351Z     },
2026-06-21T08:16:00.3669447Z     {
2026-06-21T08:16:00.3669564Z       "id": "REQ-REACH-2",
2026-06-21T08:16:00.3669757Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-21T08:16:00.3669883Z       "requiredStages": [],
2026-06-21T08:16:00.3673985Z       "stages": {
2026-06-21T08:16:00.3674133Z         "doc": {
2026-06-21T08:16:00.3674267Z           "complete": false,
2026-06-21T08:16:00.3674371Z           "evidence": []
2026-06-21T08:16:00.3674487Z         },
2026-06-21T08:16:00.3674592Z         "impl": {
2026-06-21T08:16:00.3674715Z           "complete": false,
2026-06-21T08:16:00.3674825Z           "evidence": []
2026-06-21T08:16:00.3674925Z         },
2026-06-21T08:16:00.3675038Z         "int": {
2026-06-21T08:16:00.3675152Z           "complete": false,
2026-06-21T08:16:00.3675266Z           "evidence": []
2026-06-21T08:16:00.3675370Z         },
2026-06-21T08:16:00.3675479Z         "unit": {
2026-06-21T08:16:00.3675751Z           "complete": false,
2026-06-21T08:16:00.3675861Z           "evidence": []
2026-06-21T08:16:00.3675970Z         }
2026-06-21T08:16:00.3676166Z       }
2026-06-21T08:16:00.3676267Z     },
2026-06-21T08:16:00.3676380Z     {
2026-06-21T08:16:00.3676510Z       "id": "REQ-READY-AGENT-RESUME",
2026-06-21T08:16:00.3680139Z       "title": "An offline ReadyAgent shows in `spt endpoint run`'s picker Resume-from-history and resumes correctly — closing the gap that today only LiveAgents do. ROOT: a harness-hosted ready bind (ReadyAgent::start_homed, ready.rs) writes info.json DIRECTLY and never appends the session ledger (unlike the shared establish_perch:250 live path), so a ready agent — though it has a session_id — produces ZERO ledger rows → the picker's offline+local Resume-from-history (which gates on ledger rows) never offers it. FIX (1): ledger the ready bind (ReadyAgent::start_homed → sessions::append Boot, mirroring establish_perch). FIX (2): `spt endpoint run --resume <session>` honors the adapter MANIFEST's endpoint TYPE — a ReadyAgent manifest (no [session.psyche_init]) resumes as a ready endpoint (poll listener, NO psyche-host); a LiveAgent (with psyche_init) as live. NO new bringup mode + NO picker changes (operator 2026-06-18): `spt endpoint run` is the spt-hosted ENDPOINT bringup for BOTH types, the type IS the adapter-manifest's concern (psyche-host already keys on psyche_init presence) — so (2) likely already holds; VERIFY at code, build only the residual. (v0.12.0)",
2026-06-21T08:16:00.3680317Z       "requiredStages": [
2026-06-21T08:16:00.3680430Z         "doc",
2026-06-21T08:16:00.3680529Z         "impl",
2026-06-21T08:16:00.3680639Z         "unit",
2026-06-21T08:16:00.3680740Z         "int"
2026-06-21T08:16:00.3680844Z       ],
2026-06-21T08:16:00.3680949Z       "stages": {
2026-06-21T08:16:00.3681055Z         "doc": {
2026-06-21T08:16:00.3681177Z           "complete": true,
2026-06-21T08:16:00.3681298Z           "evidence": [
2026-06-21T08:16:00.3681407Z             {
2026-06-21T08:16:00.3681550Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.3681660Z               "line": 372
2026-06-21T08:16:00.3681778Z             }
2026-06-21T08:16:00.3681875Z           ]
2026-06-21T08:16:00.3681975Z         },
2026-06-21T08:16:00.3682069Z         "impl": {
2026-06-21T08:16:00.3682195Z           "complete": true,
2026-06-21T08:16:00.3682294Z           "evidence": [
2026-06-21T08:16:00.3682398Z             {
2026-06-21T08:16:00.3682552Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T08:16:00.3682660Z               "line": 110
2026-06-21T08:16:00.3682764Z             }
2026-06-21T08:16:00.3682869Z           ]
2026-06-21T08:16:00.3682977Z         },
2026-06-21T08:16:00.3683086Z         "int": {
2026-06-21T08:16:00.3683196Z           "complete": true,
2026-06-21T08:16:00.3683306Z           "evidence": [
2026-06-21T08:16:00.3683396Z             {
2026-06-21T08:16:00.3683573Z               "path": "crates/spt/tests/ready_resume_ledger_e2e.rs",
2026-06-21T08:16:00.3683687Z               "line": 26
2026-06-21T08:16:00.3683793Z             }
2026-06-21T08:16:00.3683897Z           ]
2026-06-21T08:16:00.3684011Z         },
2026-06-21T08:16:00.3684122Z         "unit": {
2026-06-21T08:16:00.3684231Z           "complete": true,
2026-06-21T08:16:00.3684350Z           "evidence": [
2026-06-21T08:16:00.3684446Z             {
2026-06-21T08:16:00.3684603Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T08:16:00.3684712Z               "line": 320
2026-06-21T08:16:00.3684818Z             }
2026-06-21T08:16:00.3684917Z           ]
2026-06-21T08:16:00.3685018Z         }
2026-06-21T08:16:00.3685124Z       }
2026-06-21T08:16:00.3685227Z     },
2026-06-21T08:16:00.3685337Z     {
2026-06-21T08:16:00.3685448Z       "id": "REQ-REL-1",
2026-06-21T08:16:00.3685872Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-21T08:16:00.3685996Z       "requiredStages": [
2026-06-21T08:16:00.3686211Z         "doc",
2026-06-21T08:16:00.3686325Z         "impl"
2026-06-21T08:16:00.3686431Z       ],
2026-06-21T08:16:00.3686630Z       "stages": {
2026-06-21T08:16:00.3686736Z         "doc": {
2026-06-21T08:16:00.3686855Z           "complete": true,
2026-06-21T08:16:00.3686974Z           "evidence": [
2026-06-21T08:16:00.3687079Z             {
2026-06-21T08:16:00.3687333Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-21T08:16:00.3687441Z               "line": 3
2026-06-21T08:16:00.3687556Z             }
2026-06-21T08:16:00.3687657Z           ]
2026-06-21T08:16:00.3687765Z         },
2026-06-21T08:16:00.3687871Z         "impl": {
2026-06-21T08:16:00.3687982Z           "complete": true,
2026-06-21T08:16:00.3688094Z           "evidence": [
2026-06-21T08:16:00.3688193Z             {
2026-06-21T08:16:00.3688355Z               "path": ".github/workflows/docs-publish.yml",
2026-06-21T08:16:00.3688459Z               "line": 11
2026-06-21T08:16:00.3688568Z             },
2026-06-21T08:16:00.3688674Z             {
2026-06-21T08:16:00.3688811Z               "path": "crates/xtask/src/main.rs",
2026-06-21T08:16:00.3688921Z               "line": 265
2026-06-21T08:16:00.3689107Z             }
2026-06-21T08:16:00.3689207Z           ]
2026-06-21T08:16:00.3689303Z         },
2026-06-21T08:16:00.3689422Z         "int": {
2026-06-21T08:16:00.3689546Z           "complete": false,
2026-06-21T08:16:00.3689656Z           "evidence": []
2026-06-21T08:16:00.3689751Z         },
2026-06-21T08:16:00.3689856Z         "unit": {
2026-06-21T08:16:00.3689970Z           "complete": false,
2026-06-21T08:16:00.3690075Z           "evidence": []
2026-06-21T08:16:00.3690175Z         }
2026-06-21T08:16:00.3690271Z       }
2026-06-21T08:16:00.3690370Z     },
2026-06-21T08:16:00.3690471Z     {
2026-06-21T08:16:00.3690581Z       "id": "REQ-REL-2",
2026-06-21T08:16:00.3691108Z       "title": "Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline",
2026-06-21T08:16:00.3691233Z       "requiredStages": [
2026-06-21T08:16:00.3691342Z         "impl",
2026-06-21T08:16:00.3691447Z         "int"
2026-06-21T08:16:00.3691539Z       ],
2026-06-21T08:16:00.3691648Z       "stages": {
2026-06-21T08:16:00.3691747Z         "doc": {
2026-06-21T08:16:00.3691872Z           "complete": true,
2026-06-21T08:16:00.3691991Z           "evidence": [
2026-06-21T08:16:00.3692095Z             {
2026-06-21T08:16:00.3692239Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-21T08:16:00.3692352Z               "line": 6
2026-06-21T08:16:00.3692459Z             }
2026-06-21T08:16:00.3692558Z           ]
2026-06-21T08:16:00.3692662Z         },
2026-06-21T08:16:00.3692774Z         "impl": {
2026-06-21T08:16:00.3692882Z           "complete": true,
2026-06-21T08:16:00.3692996Z           "evidence": [
2026-06-21T08:16:00.3693088Z             {
2026-06-21T08:16:00.3693230Z               "path": ".github/workflows/release.yml",
2026-06-21T08:16:00.3693348Z               "line": 16
2026-06-21T08:16:00.3693458Z             },
2026-06-21T08:16:00.3693570Z             {
2026-06-21T08:16:00.3693704Z               "path": "crates/xtask/src/main.rs",
2026-06-21T08:16:00.3693819Z               "line": 352
2026-06-21T08:16:00.3693913Z             },
2026-06-21T08:16:00.3694023Z             {
2026-06-21T08:16:00.3694157Z               "path": "crates/xtask/src/main.rs",
2026-06-21T08:16:00.3694271Z               "line": 426
2026-06-21T08:16:00.3694377Z             },
2026-06-21T08:16:00.3694476Z             {
2026-06-21T08:16:00.3694619Z               "path": "crates/xtask/src/main.rs",
2026-06-21T08:16:00.3694730Z               "line": 588
2026-06-21T08:16:00.3694835Z             },
2026-06-21T08:16:00.3694929Z             {
2026-06-21T08:16:00.3695064Z               "path": "crates/xtask/src/main.rs",
2026-06-21T08:16:00.3695187Z               "line": 720
2026-06-21T08:16:00.3695287Z             }
2026-06-21T08:16:00.3695397Z           ]
2026-06-21T08:16:00.3695617Z         },
2026-06-21T08:16:00.3695717Z         "int": {
2026-06-21T08:16:00.3695840Z           "complete": true,
2026-06-21T08:16:00.3696064Z           "evidence": [
2026-06-21T08:16:00.3696173Z             {
2026-06-21T08:16:00.3696335Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-21T08:16:00.3696452Z               "line": 13
2026-06-21T08:16:00.3696561Z             }
2026-06-21T08:16:00.3696672Z           ]
2026-06-21T08:16:00.3696795Z         },
2026-06-21T08:16:00.3696934Z         "unit": {
2026-06-21T08:16:00.3697049Z           "complete": false,
2026-06-21T08:16:00.3697162Z           "evidence": []
2026-06-21T08:16:00.3697273Z         }
2026-06-21T08:16:00.3697373Z       }
2026-06-21T08:16:00.3697477Z     },
2026-06-21T08:16:00.3697583Z     {
2026-06-21T08:16:00.3697701Z       "id": "REQ-REL-3",
2026-06-21T08:16:00.3698169Z       "title": "Two-key release-signing trust anchor: primary + offline never-used recovery, both pubkeys embedded in the binary's trusted set, manual local signing (ADR-0015)",
2026-06-21T08:16:00.3698293Z       "requiredStages": [
2026-06-21T08:16:00.3698397Z         "impl",
2026-06-21T08:16:00.3698508Z         "unit"
2026-06-21T08:16:00.3698617Z       ],
2026-06-21T08:16:00.3698721Z       "stages": {
2026-06-21T08:16:00.3698825Z         "doc": {
2026-06-21T08:16:00.3699019Z           "complete": false,
2026-06-21T08:16:00.3699128Z           "evidence": []
2026-06-21T08:16:00.3699229Z         },
2026-06-21T08:16:00.3699343Z         "impl": {
2026-06-21T08:16:00.3699466Z           "complete": true,
2026-06-21T08:16:00.3699568Z           "evidence": [
2026-06-21T08:16:00.3699676Z             {
2026-06-21T08:16:00.3699830Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.3699944Z               "line": 237
2026-06-21T08:16:00.3700057Z             },
2026-06-21T08:16:00.3700159Z             {
2026-06-21T08:16:00.3700311Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.3700416Z               "line": 289
2026-06-21T08:16:00.3700530Z             },
2026-06-21T08:16:00.3700635Z             {
2026-06-21T08:16:00.3700765Z               "path": "crates/xtask/src/main.rs",
2026-06-21T08:16:00.3700878Z               "line": 329
2026-06-21T08:16:00.3700983Z             },
2026-06-21T08:16:00.3701089Z             {
2026-06-21T08:16:00.3701221Z               "path": "crates/xtask/src/main.rs",
2026-06-21T08:16:00.3701331Z               "line": 353
2026-06-21T08:16:00.3701433Z             },
2026-06-21T08:16:00.3701540Z             {
2026-06-21T08:16:00.3701673Z               "path": "crates/xtask/src/main.rs",
2026-06-21T08:16:00.3701784Z               "line": 394
2026-06-21T08:16:00.3701893Z             }
2026-06-21T08:16:00.3701998Z           ]
2026-06-21T08:16:00.3702103Z         },
2026-06-21T08:16:00.3702212Z         "int": {
2026-06-21T08:16:00.3702327Z           "complete": false,
2026-06-21T08:16:00.3702446Z           "evidence": []
2026-06-21T08:16:00.3702546Z         },
2026-06-21T08:16:00.3702660Z         "unit": {
2026-06-21T08:16:00.3702775Z           "complete": true,
2026-06-21T08:16:00.3702889Z           "evidence": [
2026-06-21T08:16:00.3702995Z             {
2026-06-21T08:16:00.3703142Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.3703251Z               "line": 1045
2026-06-21T08:16:00.3703357Z             },
2026-06-21T08:16:00.3703466Z             {
2026-06-21T08:16:00.3703610Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.3703720Z               "line": 1104
2026-06-21T08:16:00.3703818Z             }
2026-06-21T08:16:00.3703922Z           ]
2026-06-21T08:16:00.3704033Z         }
2026-06-21T08:16:00.3704140Z       }
2026-06-21T08:16:00.3704244Z     },
2026-06-21T08:16:00.3704341Z     {
2026-06-21T08:16:00.3704464Z       "id": "REQ-RUN-PICKER",
2026-06-21T08:16:00.3709266Z       "title": "Interactive `spt endpoint run` picker (ratatui TUI): bare `spt endpoint run` (no --adapter/--id) enters an in-process picker (flags-present = the REQ-HOST-RUN-1 non-interactive path, untouched). Layer 1 picks kind (Create new | Pick existing). Create-new: choose a registered kind=\"harness\" adapter with its shipped+local profiles tree-nested (registry::registered / manifest.profiles / local_profile_names) → enter a charset-validated id → start. Pick-existing: category select (left/right) over [<cwd-project> | Local node | Subnet], endpoints grouped + alphabetically sorted per category, a status square per endpoint (online green ■ / offline gray ▢ — the blue \"attached\" tri-state + Kick are DEFERRED to a broker attach-presence slice, M12-W2-RULING Q1), type-to-filter (`/`, nucleo-matcher), a pinned keybind legend, and a right-half two-pane description (harness adapter:profile · best-effort project history newest→oldest from the contextstore p-<project> branches, empty-if-none · `spt endpoint description`). Confirm layer offers status-dependent options — Attach/Start/View (rc pump / cmd_endpoint_run) · Instantiate-locally (remote) · Change-harness-adapter (offline) · Fork (cmd_fork) · Resume-from-history (offline+LOCAL only; enumerate spt_store::sessions::last_k, titles `<project> @ <ts> (…id5)`, feed session_id → cmd_endpoint_run --resume). A single action enum is the source of truth so a future tap-mode (phone PTY) layers on without re-coupling to keybinds. EVERY terminal action routes through cmd_endpoint_run / existing CLI fns — no second bringup path.",
2026-06-21T08:16:00.3709678Z       "requiredStages": [
2026-06-21T08:16:00.3709784Z         "doc",
2026-06-21T08:16:00.3709893Z         "impl",
2026-06-21T08:16:00.3709998Z         "unit"
2026-06-21T08:16:00.3710108Z       ],
2026-06-21T08:16:00.3710213Z       "stages": {
2026-06-21T08:16:00.3710322Z         "doc": {
2026-06-21T08:16:00.3710442Z           "complete": true,
2026-06-21T08:16:00.3710560Z           "evidence": [
2026-06-21T08:16:00.3710657Z             {
2026-06-21T08:16:00.3710776Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.3710885Z               "line": 349
2026-06-21T08:16:00.3711010Z             }
2026-06-21T08:16:00.3711114Z           ]
2026-06-21T08:16:00.3711219Z         },
2026-06-21T08:16:00.3711354Z         "impl": {
2026-06-21T08:16:00.3711481Z           "complete": true,
2026-06-21T08:16:00.3711596Z           "evidence": [
2026-06-21T08:16:00.3711711Z             {
2026-06-21T08:16:00.3711848Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3711969Z               "line": 958
2026-06-21T08:16:00.3712058Z             },
2026-06-21T08:16:00.3712162Z             {
2026-06-21T08:16:00.3712296Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3712411Z               "line": 968
2026-06-21T08:16:00.3712524Z             },
2026-06-21T08:16:00.3712625Z             {
2026-06-21T08:16:00.3712772Z               "path": "crates/spt/src/picker/data.rs",
2026-06-21T08:16:00.3712882Z               "line": 9
2026-06-21T08:16:00.3712992Z             },
2026-06-21T08:16:00.3713097Z             {
2026-06-21T08:16:00.3713235Z               "path": "crates/spt/src/picker/data.rs",
2026-06-21T08:16:00.3713355Z               "line": 67
2026-06-21T08:16:00.3713454Z             },
2026-06-21T08:16:00.3713560Z             {
2026-06-21T08:16:00.3713702Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-21T08:16:00.3713816Z               "line": 16
2026-06-21T08:16:00.3713918Z             },
2026-06-21T08:16:00.3714031Z             {
2026-06-21T08:16:00.3714165Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-21T08:16:00.3714275Z               "line": 254
2026-06-21T08:16:00.3714383Z             },
2026-06-21T08:16:00.3714483Z             {
2026-06-21T08:16:00.3714635Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3714738Z               "line": 11
2026-06-21T08:16:00.3714848Z             },
2026-06-21T08:16:00.3714949Z             {
2026-06-21T08:16:00.3715091Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3715206Z               "line": 115
2026-06-21T08:16:00.3715396Z             },
2026-06-21T08:16:00.3715507Z             {
2026-06-21T08:16:00.3715658Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3715840Z               "line": 554
2026-06-21T08:16:00.3715945Z             },
2026-06-21T08:16:00.3716044Z             {
2026-06-21T08:16:00.3716193Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3716302Z               "line": 635
2026-06-21T08:16:00.3716407Z             },
2026-06-21T08:16:00.3716518Z             {
2026-06-21T08:16:00.3716655Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3716771Z               "line": 694
2026-06-21T08:16:00.3716879Z             },
2026-06-21T08:16:00.3716993Z             {
2026-06-21T08:16:00.3717133Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3717250Z               "line": 747
2026-06-21T08:16:00.3717350Z             },
2026-06-21T08:16:00.3717455Z             {
2026-06-21T08:16:00.3717596Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3717715Z               "line": 785
2026-06-21T08:16:00.3717811Z             },
2026-06-21T08:16:00.3717929Z             {
2026-06-21T08:16:00.3718074Z               "path": "crates/spt/src/picker/view.rs",
2026-06-21T08:16:00.3718188Z               "line": 8
2026-06-21T08:16:00.3718287Z             }
2026-06-21T08:16:00.3718393Z           ]
2026-06-21T08:16:00.3718493Z         },
2026-06-21T08:16:00.3718601Z         "int": {
2026-06-21T08:16:00.3718717Z           "complete": false,
2026-06-21T08:16:00.3718826Z           "evidence": []
2026-06-21T08:16:00.3718936Z         },
2026-06-21T08:16:00.3719112Z         "unit": {
2026-06-21T08:16:00.3719231Z           "complete": true,
2026-06-21T08:16:00.3719342Z           "evidence": [
2026-06-21T08:16:00.3719455Z             {
2026-06-21T08:16:00.3719585Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3719705Z               "line": 7638
2026-06-21T08:16:00.3719803Z             },
2026-06-21T08:16:00.3719911Z             {
2026-06-21T08:16:00.3720045Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3720163Z               "line": 7649
2026-06-21T08:16:00.3720286Z             },
2026-06-21T08:16:00.3720383Z             {
2026-06-21T08:16:00.3720529Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3720645Z               "line": 879
2026-06-21T08:16:00.3720749Z             },
2026-06-21T08:16:00.3720858Z             {
2026-06-21T08:16:00.3720997Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3721106Z               "line": 928
2026-06-21T08:16:00.3721212Z             },
2026-06-21T08:16:00.3721321Z             {
2026-06-21T08:16:00.3721474Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3721585Z               "line": 979
2026-06-21T08:16:00.3721698Z             },
2026-06-21T08:16:00.3721793Z             {
2026-06-21T08:16:00.3721938Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3722056Z               "line": 996
2026-06-21T08:16:00.3722161Z             },
2026-06-21T08:16:00.3722266Z             {
2026-06-21T08:16:00.3722404Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3722514Z               "line": 1005
2026-06-21T08:16:00.3722618Z             },
2026-06-21T08:16:00.3722732Z             {
2026-06-21T08:16:00.3722870Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3722989Z               "line": 1016
2026-06-21T08:16:00.3723103Z             },
2026-06-21T08:16:00.3723200Z             {
2026-06-21T08:16:00.3723346Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3723452Z               "line": 1038
2026-06-21T08:16:00.3723557Z             },
2026-06-21T08:16:00.3723661Z             {
2026-06-21T08:16:00.3723795Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3723905Z               "line": 1057
2026-06-21T08:16:00.3724000Z             },
2026-06-21T08:16:00.3724215Z             {
2026-06-21T08:16:00.3724353Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3724567Z               "line": 1107
2026-06-21T08:16:00.3724668Z             },
2026-06-21T08:16:00.3724769Z             {
2026-06-21T08:16:00.3724915Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3725029Z               "line": 1136
2026-06-21T08:16:00.3725133Z             },
2026-06-21T08:16:00.3725237Z             {
2026-06-21T08:16:00.3725379Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3725499Z               "line": 1149
2026-06-21T08:16:00.3725608Z             },
2026-06-21T08:16:00.3725708Z             {
2026-06-21T08:16:00.3725852Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3725970Z               "line": 1215
2026-06-21T08:16:00.3726076Z             },
2026-06-21T08:16:00.3726186Z             {
2026-06-21T08:16:00.3726333Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3726448Z               "line": 1256
2026-06-21T08:16:00.3726557Z             },
2026-06-21T08:16:00.3726662Z             {
2026-06-21T08:16:00.3726805Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3726919Z               "line": 1272
2026-06-21T08:16:00.3727021Z             },
2026-06-21T08:16:00.3727130Z             {
2026-06-21T08:16:00.3727268Z               "path": "crates/spt/src/picker/view.rs",
2026-06-21T08:16:00.3727378Z               "line": 491
2026-06-21T08:16:00.3727486Z             },
2026-06-21T08:16:00.3727593Z             {
2026-06-21T08:16:00.3727731Z               "path": "crates/spt/src/picker/view.rs",
2026-06-21T08:16:00.3727839Z               "line": 506
2026-06-21T08:16:00.3727948Z             },
2026-06-21T08:16:00.3728053Z             {
2026-06-21T08:16:00.3728198Z               "path": "crates/spt/src/picker/view.rs",
2026-06-21T08:16:00.3728309Z               "line": 524
2026-06-21T08:16:00.3728414Z             },
2026-06-21T08:16:00.3728518Z             {
2026-06-21T08:16:00.3728662Z               "path": "crates/spt/src/picker/view.rs",
2026-06-21T08:16:00.3728781Z               "line": 546
2026-06-21T08:16:00.3728885Z             },
2026-06-21T08:16:00.3729086Z             {
2026-06-21T08:16:00.3729229Z               "path": "crates/spt/src/picker/view.rs",
2026-06-21T08:16:00.3729348Z               "line": 556
2026-06-21T08:16:00.3729457Z             },
2026-06-21T08:16:00.3729568Z             {
2026-06-21T08:16:00.3729710Z               "path": "crates/spt/src/picker/view.rs",
2026-06-21T08:16:00.3729820Z               "line": 582
2026-06-21T08:16:00.3729931Z             }
2026-06-21T08:16:00.3730020Z           ]
2026-06-21T08:16:00.3730135Z         }
2026-06-21T08:16:00.3730236Z       }
2026-06-21T08:16:00.3730344Z     },
2026-06-21T08:16:00.3730453Z     {
2026-06-21T08:16:00.3730577Z       "id": "REQ-RUN-SHORTCUT",
2026-06-21T08:16:00.3735252Z       "title": "`<basename>-<id>` launcher shortcut generation (picker `s` keybind, M12-W2-T2.4): from any pre-start options set the picker writes/updates a `<basename>-<id>` launcher at the project root baking the current selection's non-interactive `spt endpoint run` flags (terminal actions only: adapter[:profile] + id + (create|resume) + (start|attach|view); Kick/Instantiate/Change-adapter/Fork are interactive-only, not bakeable). BASENAME IS A PARAMETER (operator rev. 2026-06-14): harness-agnostic spt-core defaults to `spt` (→ `spt-<id>`); an adapter/flow OVERRIDES it (spt-claude-code → `cc`), so spt-core NEVER bakes `cc` (a harness name) into itself. The basename must be a DISTINCT token, never bare `spt` (a `spt.cmd` would shadow the real `spt.exe` only under cmd.exe cwd-first search, silently no-op in PowerShell/Unix, and self-recurse). The script is the CURRENT OS's native form — `.cmd` on Windows (NOT `.ps1`: default PATHEXT excludes `.ps1` so a bare/ext-less name never resolves one; `.cmd` is PATHEXT-resolvable), POSIX `sh` (+chmod +x) on Unix (a single portable form can't be both). The generated header documents the invocation reality (cmd.exe bare `<name>` in the project dir / PowerShell `.\\<name>` / Unix `./<name>`; a truly-bare basename on PATH = a PATH-installed launcher, `/spt:setup`'s job). Overwrite is SENTINEL-guarded: the generator writes + checks a generated-by header marker — it overwrites its own prior output freely, but REFUSES + warns if a same-named file lacks the sentinel (never clobber a user file). Requires the additive `--create` flag on `Run{}` (the default-fresh made explicit; N-1-safe).",
2026-06-21T08:16:00.3735641Z       "requiredStages": [
2026-06-21T08:16:00.3735750Z         "doc",
2026-06-21T08:16:00.3735858Z         "impl",
2026-06-21T08:16:00.3735973Z         "unit"
2026-06-21T08:16:00.3736074Z       ],
2026-06-21T08:16:00.3736196Z       "stages": {
2026-06-21T08:16:00.3736307Z         "doc": {
2026-06-21T08:16:00.3736421Z           "complete": true,
2026-06-21T08:16:00.3736544Z           "evidence": [
2026-06-21T08:16:00.3736632Z             {
2026-06-21T08:16:00.3736769Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.3736874Z               "line": 390
2026-06-21T08:16:00.3737032Z             }
2026-06-21T08:16:00.3737155Z           ]
2026-06-21T08:16:00.3737266Z         },
2026-06-21T08:16:00.3737370Z         "impl": {
2026-06-21T08:16:00.3737479Z           "complete": true,
2026-06-21T08:16:00.3737595Z           "evidence": [
2026-06-21T08:16:00.3737704Z             {
2026-06-21T08:16:00.3737867Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-21T08:16:00.3737976Z               "line": 39
2026-06-21T08:16:00.3738071Z             },
2026-06-21T08:16:00.3738181Z             {
2026-06-21T08:16:00.3738319Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-21T08:16:00.3738432Z               "line": 79
2026-06-21T08:16:00.3738538Z             },
2026-06-21T08:16:00.3738650Z             {
2026-06-21T08:16:00.3738797Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-21T08:16:00.3738913Z               "line": 162
2026-06-21T08:16:00.3739087Z             }
2026-06-21T08:16:00.3739184Z           ]
2026-06-21T08:16:00.3739289Z         },
2026-06-21T08:16:00.3739431Z         "int": {
2026-06-21T08:16:00.3739547Z           "complete": false,
2026-06-21T08:16:00.3739656Z           "evidence": []
2026-06-21T08:16:00.3739751Z         },
2026-06-21T08:16:00.3739861Z         "unit": {
2026-06-21T08:16:00.3739971Z           "complete": true,
2026-06-21T08:16:00.3740089Z           "evidence": [
2026-06-21T08:16:00.3740195Z             {
2026-06-21T08:16:00.3740342Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-21T08:16:00.3740453Z               "line": 206
2026-06-21T08:16:00.3740557Z             },
2026-06-21T08:16:00.3740666Z             {
2026-06-21T08:16:00.3740811Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-21T08:16:00.3740923Z               "line": 222
2026-06-21T08:16:00.3741032Z             },
2026-06-21T08:16:00.3741137Z             {
2026-06-21T08:16:00.3741278Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-21T08:16:00.3741388Z               "line": 238
2026-06-21T08:16:00.3741498Z             },
2026-06-21T08:16:00.3741606Z             {
2026-06-21T08:16:00.3741761Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-21T08:16:00.3741866Z               "line": 251
2026-06-21T08:16:00.3741974Z             },
2026-06-21T08:16:00.3742075Z             {
2026-06-21T08:16:00.3742218Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-21T08:16:00.3742332Z               "line": 258
2026-06-21T08:16:00.3742437Z             }
2026-06-21T08:16:00.3742542Z           ]
2026-06-21T08:16:00.3742651Z         }
2026-06-21T08:16:00.3742762Z       }
2026-06-21T08:16:00.3742862Z     },
2026-06-21T08:16:00.3742961Z     {
2026-06-21T08:16:00.3743095Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-21T08:16:00.3743306Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-21T08:16:00.3743424Z       "requiredStages": [
2026-06-21T08:16:00.3743630Z         "impl",
2026-06-21T08:16:00.3743735Z         "unit"
2026-06-21T08:16:00.3743833Z       ],
2026-06-21T08:16:00.3744029Z       "stages": {
2026-06-21T08:16:00.3744138Z         "doc": {
2026-06-21T08:16:00.3744257Z           "complete": false,
2026-06-21T08:16:00.3744372Z           "evidence": []
2026-06-21T08:16:00.3744471Z         },
2026-06-21T08:16:00.3744587Z         "impl": {
2026-06-21T08:16:00.3744710Z           "complete": true,
2026-06-21T08:16:00.3744810Z           "evidence": [
2026-06-21T08:16:00.3744920Z             {
2026-06-21T08:16:00.3745068Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T08:16:00.3745177Z               "line": 18
2026-06-21T08:16:00.3745279Z             },
2026-06-21T08:16:00.3745387Z             {
2026-06-21T08:16:00.3745531Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T08:16:00.3745641Z               "line": 35
2026-06-21T08:16:00.3745745Z             },
2026-06-21T08:16:00.3745850Z             {
2026-06-21T08:16:00.3746002Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T08:16:00.3746111Z               "line": 72
2026-06-21T08:16:00.3746235Z             }
2026-06-21T08:16:00.3746338Z           ]
2026-06-21T08:16:00.3746447Z         },
2026-06-21T08:16:00.3746562Z         "int": {
2026-06-21T08:16:00.3746681Z           "complete": false,
2026-06-21T08:16:00.3746805Z           "evidence": []
2026-06-21T08:16:00.3746910Z         },
2026-06-21T08:16:00.3747019Z         "unit": {
2026-06-21T08:16:00.3747144Z           "complete": true,
2026-06-21T08:16:00.3747258Z           "evidence": [
2026-06-21T08:16:00.3747362Z             {
2026-06-21T08:16:00.3747502Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T08:16:00.3747625Z               "line": 239
2026-06-21T08:16:00.3747730Z             },
2026-06-21T08:16:00.3747836Z             {
2026-06-21T08:16:00.3747982Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T08:16:00.3748093Z               "line": 256
2026-06-21T08:16:00.3748221Z             },
2026-06-21T08:16:00.3748321Z             {
2026-06-21T08:16:00.3748471Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T08:16:00.3748583Z               "line": 265
2026-06-21T08:16:00.3748688Z             }
2026-06-21T08:16:00.3748795Z           ]
2026-06-21T08:16:00.3748902Z         }
2026-06-21T08:16:00.3749098Z       }
2026-06-21T08:16:00.3749205Z     },
2026-06-21T08:16:00.3749309Z     {
2026-06-21T08:16:00.3749443Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-21T08:16:00.3749624Z       "title": "Hostable endpoint-types capability declaration",
2026-06-21T08:16:00.3749740Z       "requiredStages": [
2026-06-21T08:16:00.3749835Z         "impl",
2026-06-21T08:16:00.3749944Z         "unit"
2026-06-21T08:16:00.3750045Z       ],
2026-06-21T08:16:00.3750154Z       "stages": {
2026-06-21T08:16:00.3750263Z         "doc": {
2026-06-21T08:16:00.3750388Z           "complete": false,
2026-06-21T08:16:00.3750506Z           "evidence": []
2026-06-21T08:16:00.3750611Z         },
2026-06-21T08:16:00.3750717Z         "impl": {
2026-06-21T08:16:00.3750831Z           "complete": true,
2026-06-21T08:16:00.3750955Z           "evidence": [
2026-06-21T08:16:00.3751051Z             {
2026-06-21T08:16:00.3751203Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.3751314Z               "line": 598
2026-06-21T08:16:00.3751418Z             }
2026-06-21T08:16:00.3751535Z           ]
2026-06-21T08:16:00.3751635Z         },
2026-06-21T08:16:00.3751740Z         "int": {
2026-06-21T08:16:00.3751847Z           "complete": false,
2026-06-21T08:16:00.3751958Z           "evidence": []
2026-06-21T08:16:00.3752068Z         },
2026-06-21T08:16:00.3752181Z         "unit": {
2026-06-21T08:16:00.3752301Z           "complete": true,
2026-06-21T08:16:00.3752411Z           "evidence": [
2026-06-21T08:16:00.3752524Z             {
2026-06-21T08:16:00.3752664Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.3752778Z               "line": 967
2026-06-21T08:16:00.3752983Z             }
2026-06-21T08:16:00.3753088Z           ]
2026-06-21T08:16:00.3753197Z         }
2026-06-21T08:16:00.3753383Z       }
2026-06-21T08:16:00.3753488Z     },
2026-06-21T08:16:00.3753589Z     {
2026-06-21T08:16:00.3753721Z       "id": "REQ-SEAM-HISTORY",
2026-06-21T08:16:00.3753942Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-21T08:16:00.3754060Z       "requiredStages": [
2026-06-21T08:16:00.3754171Z         "impl",
2026-06-21T08:16:00.3754281Z         "unit",
2026-06-21T08:16:00.3754388Z         "int"
2026-06-21T08:16:00.3754488Z       ],
2026-06-21T08:16:00.3754594Z       "stages": {
2026-06-21T08:16:00.3754698Z         "doc": {
2026-06-21T08:16:00.3754807Z           "complete": false,
2026-06-21T08:16:00.3754923Z           "evidence": []
2026-06-21T08:16:00.3755027Z         },
2026-06-21T08:16:00.3755137Z         "impl": {
2026-06-21T08:16:00.3755252Z           "complete": true,
2026-06-21T08:16:00.3755370Z           "evidence": [
2026-06-21T08:16:00.3755490Z             {
2026-06-21T08:16:00.3755633Z               "path": "crates/spt-live/src/echo.rs",
2026-06-21T08:16:00.3755752Z               "line": 24
2026-06-21T08:16:00.3755858Z             },
2026-06-21T08:16:00.3755967Z             {
2026-06-21T08:16:00.3756111Z               "path": "crates/spt-live/src/history.rs",
2026-06-21T08:16:00.3756238Z               "line": 22
2026-06-21T08:16:00.3756343Z             }
2026-06-21T08:16:00.3756449Z           ]
2026-06-21T08:16:00.3756553Z         },
2026-06-21T08:16:00.3756662Z         "int": {
2026-06-21T08:16:00.3756786Z           "complete": true,
2026-06-21T08:16:00.3756898Z           "evidence": [
2026-06-21T08:16:00.3757016Z             {
2026-06-21T08:16:00.3757170Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-21T08:16:00.3757284Z               "line": 260
2026-06-21T08:16:00.3757394Z             }
2026-06-21T08:16:00.3757499Z           ]
2026-06-21T08:16:00.3757598Z         },
2026-06-21T08:16:00.3757699Z         "unit": {
2026-06-21T08:16:00.3757809Z           "complete": true,
2026-06-21T08:16:00.3757922Z           "evidence": [
2026-06-21T08:16:00.3758024Z             {
2026-06-21T08:16:00.3758157Z               "path": "crates/spt-live/src/echo.rs",
2026-06-21T08:16:00.3758266Z               "line": 171
2026-06-21T08:16:00.3758372Z             },
2026-06-21T08:16:00.3758481Z             {
2026-06-21T08:16:00.3758619Z               "path": "crates/spt-live/src/echo.rs",
2026-06-21T08:16:00.3758739Z               "line": 200
2026-06-21T08:16:00.3758838Z             },
2026-06-21T08:16:00.3759036Z             {
2026-06-21T08:16:00.3759177Z               "path": "crates/spt-live/src/echo.rs",
2026-06-21T08:16:00.3759283Z               "line": 220
2026-06-21T08:16:00.3759388Z             },
2026-06-21T08:16:00.3759486Z             {
2026-06-21T08:16:00.3759619Z               "path": "crates/spt-live/src/history.rs",
2026-06-21T08:16:00.3759728Z               "line": 199
2026-06-21T08:16:00.3759841Z             },
2026-06-21T08:16:00.3759941Z             {
2026-06-21T08:16:00.3760090Z               "path": "crates/spt-live/src/history.rs",
2026-06-21T08:16:00.3760198Z               "line": 219
2026-06-21T08:16:00.3760310Z             },
2026-06-21T08:16:00.3760414Z             {
2026-06-21T08:16:00.3760551Z               "path": "crates/spt-live/src/history.rs",
2026-06-21T08:16:00.3760667Z               "line": 244
2026-06-21T08:16:00.3760762Z             },
2026-06-21T08:16:00.3760871Z             {
2026-06-21T08:16:00.3761014Z               "path": "crates/spt-live/src/history.rs",
2026-06-21T08:16:00.3761119Z               "line": 276
2026-06-21T08:16:00.3761234Z             },
2026-06-21T08:16:00.3761334Z             {
2026-06-21T08:16:00.3761472Z               "path": "crates/spt-live/src/history.rs",
2026-06-21T08:16:00.3761578Z               "line": 297
2026-06-21T08:16:00.3761682Z             },
2026-06-21T08:16:00.3761787Z             {
2026-06-21T08:16:00.3761926Z               "path": "crates/spt-live/src/history.rs",
2026-06-21T08:16:00.3762148Z               "line": 324
2026-06-21T08:16:00.3762248Z             }
2026-06-21T08:16:00.3762460Z           ]
2026-06-21T08:16:00.3762556Z         }
2026-06-21T08:16:00.3762666Z       }
2026-06-21T08:16:00.3762770Z     },
2026-06-21T08:16:00.3762871Z     {
2026-06-21T08:16:00.3762995Z       "id": "REQ-SEAM-INJECT",
2026-06-21T08:16:00.3763190Z       "title": "inject-input methods configurable per activity-state",
2026-06-21T08:16:00.3763300Z       "requiredStages": [
2026-06-21T08:16:00.3763408Z         "impl",
2026-06-21T08:16:00.3763519Z         "unit"
2026-06-21T08:16:00.3763624Z       ],
2026-06-21T08:16:00.3763728Z       "stages": {
2026-06-21T08:16:00.3763834Z         "doc": {
2026-06-21T08:16:00.3763948Z           "complete": false,
2026-06-21T08:16:00.3764058Z           "evidence": []
2026-06-21T08:16:00.3764168Z         },
2026-06-21T08:16:00.3764281Z         "impl": {
2026-06-21T08:16:00.3764402Z           "complete": true,
2026-06-21T08:16:00.3764521Z           "evidence": [
2026-06-21T08:16:00.3764625Z             {
2026-06-21T08:16:00.3764765Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T08:16:00.3768459Z               "line": 19
2026-06-21T08:16:00.3768579Z             },
2026-06-21T08:16:00.3768688Z             {
2026-06-21T08:16:00.3768855Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T08:16:00.3769050Z               "line": 111
2026-06-21T08:16:00.3769150Z             }
2026-06-21T08:16:00.3769252Z           ]
2026-06-21T08:16:00.3769370Z         },
2026-06-21T08:16:00.3769484Z         "int": {
2026-06-21T08:16:00.3769610Z           "complete": false,
2026-06-21T08:16:00.3769737Z           "evidence": []
2026-06-21T08:16:00.3769838Z         },
2026-06-21T08:16:00.3769944Z         "unit": {
2026-06-21T08:16:00.3770056Z           "complete": true,
2026-06-21T08:16:00.3770180Z           "evidence": [
2026-06-21T08:16:00.3770275Z             {
2026-06-21T08:16:00.3770420Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T08:16:00.3770559Z               "line": 345
2026-06-21T08:16:00.3770668Z             },
2026-06-21T08:16:00.3770777Z             {
2026-06-21T08:16:00.3770922Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T08:16:00.3771040Z               "line": 365
2026-06-21T08:16:00.3771136Z             }
2026-06-21T08:16:00.3771241Z           ]
2026-06-21T08:16:00.3771345Z         }
2026-06-21T08:16:00.3771441Z       }
2026-06-21T08:16:00.3771546Z     },
2026-06-21T08:16:00.3771651Z     {
2026-06-21T08:16:00.3771780Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-21T08:16:00.3771941Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-21T08:16:00.3772065Z       "requiredStages": [
2026-06-21T08:16:00.3772176Z         "impl",
2026-06-21T08:16:00.3772284Z         "unit"
2026-06-21T08:16:00.3772390Z       ],
2026-06-21T08:16:00.3772496Z       "stages": {
2026-06-21T08:16:00.3772604Z         "doc": {
2026-06-21T08:16:00.3772717Z           "complete": false,
2026-06-21T08:16:00.3772846Z           "evidence": []
2026-06-21T08:16:00.3772949Z         },
2026-06-21T08:16:00.3773058Z         "impl": {
2026-06-21T08:16:00.3773179Z           "complete": true,
2026-06-21T08:16:00.3773292Z           "evidence": [
2026-06-21T08:16:00.3773397Z             {
2026-06-21T08:16:00.3773536Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3773659Z               "line": 18
2026-06-21T08:16:00.3773765Z             },
2026-06-21T08:16:00.3773874Z             {
2026-06-21T08:16:00.3774013Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3774122Z               "line": 431
2026-06-21T08:16:00.3774227Z             }
2026-06-21T08:16:00.3774327Z           ]
2026-06-21T08:16:00.3774428Z         },
2026-06-21T08:16:00.3774532Z         "int": {
2026-06-21T08:16:00.3774642Z           "complete": false,
2026-06-21T08:16:00.3774757Z           "evidence": []
2026-06-21T08:16:00.3774856Z         },
2026-06-21T08:16:00.3774971Z         "unit": {
2026-06-21T08:16:00.3775219Z           "complete": true,
2026-06-21T08:16:00.3775344Z           "evidence": [
2026-06-21T08:16:00.3775532Z             {
2026-06-21T08:16:00.3775675Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3775795Z               "line": 881
2026-06-21T08:16:00.3775899Z             },
2026-06-21T08:16:00.3776000Z             {
2026-06-21T08:16:00.3776138Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3776257Z               "line": 891
2026-06-21T08:16:00.3776363Z             }
2026-06-21T08:16:00.3776467Z           ]
2026-06-21T08:16:00.3776576Z         }
2026-06-21T08:16:00.3776677Z       }
2026-06-21T08:16:00.3776777Z     },
2026-06-21T08:16:00.3776877Z     {
2026-06-21T08:16:00.3777002Z       "id": "REQ-SEAM-PSYCHE",
2026-06-21T08:16:00.3777167Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-21T08:16:00.3777293Z       "requiredStages": [
2026-06-21T08:16:00.3777401Z         "impl",
2026-06-21T08:16:00.3777507Z         "unit",
2026-06-21T08:16:00.3777617Z         "int"
2026-06-21T08:16:00.3777720Z       ],
2026-06-21T08:16:00.3777815Z       "stages": {
2026-06-21T08:16:00.3777920Z         "doc": {
2026-06-21T08:16:00.3778042Z           "complete": false,
2026-06-21T08:16:00.3778160Z           "evidence": []
2026-06-21T08:16:00.3778252Z         },
2026-06-21T08:16:00.3778357Z         "impl": {
2026-06-21T08:16:00.3778466Z           "complete": true,
2026-06-21T08:16:00.3778587Z           "evidence": [
2026-06-21T08:16:00.3778691Z             {
2026-06-21T08:16:00.3778844Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-21T08:16:00.3779071Z               "line": 19
2026-06-21T08:16:00.3779177Z             },
2026-06-21T08:16:00.3779282Z             {
2026-06-21T08:16:00.3779425Z               "path": "crates/spt/src/api/live.rs",
2026-06-21T08:16:00.3779535Z               "line": 12
2026-06-21T08:16:00.3779640Z             },
2026-06-21T08:16:00.3779739Z             {
2026-06-21T08:16:00.3779893Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3780002Z               "line": 301
2026-06-21T08:16:00.3780113Z             }
2026-06-21T08:16:00.3780212Z           ]
2026-06-21T08:16:00.3780316Z         },
2026-06-21T08:16:00.3780422Z         "int": {
2026-06-21T08:16:00.3780536Z           "complete": true,
2026-06-21T08:16:00.3780644Z           "evidence": [
2026-06-21T08:16:00.3780749Z             {
2026-06-21T08:16:00.3780900Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-21T08:16:00.3781014Z               "line": 259
2026-06-21T08:16:00.3781109Z             }
2026-06-21T08:16:00.3781206Z           ]
2026-06-21T08:16:00.3781309Z         },
2026-06-21T08:16:00.3781420Z         "unit": {
2026-06-21T08:16:00.3781535Z           "complete": true,
2026-06-21T08:16:00.3781648Z           "evidence": [
2026-06-21T08:16:00.3781754Z             {
2026-06-21T08:16:00.3781901Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-21T08:16:00.3782006Z               "line": 195
2026-06-21T08:16:00.3782111Z             },
2026-06-21T08:16:00.3782225Z             {
2026-06-21T08:16:00.3782364Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-21T08:16:00.3782477Z               "line": 202
2026-06-21T08:16:00.3782582Z             },
2026-06-21T08:16:00.3782689Z             {
2026-06-21T08:16:00.3782835Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-21T08:16:00.3782945Z               "line": 225
2026-06-21T08:16:00.3783056Z             },
2026-06-21T08:16:00.3783159Z             {
2026-06-21T08:16:00.3783302Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-21T08:16:00.3783406Z               "line": 106
2026-06-21T08:16:00.3783519Z             },
2026-06-21T08:16:00.3783628Z             {
2026-06-21T08:16:00.3783758Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-21T08:16:00.3783862Z               "line": 137
2026-06-21T08:16:00.3783962Z             },
2026-06-21T08:16:00.3784063Z             {
2026-06-21T08:16:00.3784311Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-21T08:16:00.3784411Z               "line": 161
2026-06-21T08:16:00.3784616Z             }
2026-06-21T08:16:00.3784720Z           ]
2026-06-21T08:16:00.3784825Z         }
2026-06-21T08:16:00.3784926Z       }
2026-06-21T08:16:00.3785040Z     },
2026-06-21T08:16:00.3785140Z     {
2026-06-21T08:16:00.3785265Z       "id": "REQ-SEAM-RESUME",
2026-06-21T08:16:00.3785479Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-21T08:16:00.3785599Z       "requiredStages": [
2026-06-21T08:16:00.3785712Z         "impl",
2026-06-21T08:16:00.3785817Z         "unit"
2026-06-21T08:16:00.3785928Z       ],
2026-06-21T08:16:00.3786035Z       "stages": {
2026-06-21T08:16:00.3786144Z         "doc": {
2026-06-21T08:16:00.3786265Z           "complete": false,
2026-06-21T08:16:00.3786374Z           "evidence": []
2026-06-21T08:16:00.3786483Z         },
2026-06-21T08:16:00.3786589Z         "impl": {
2026-06-21T08:16:00.3786707Z           "complete": true,
2026-06-21T08:16:00.3786827Z           "evidence": [
2026-06-21T08:16:00.3786937Z             {
2026-06-21T08:16:00.3787093Z               "path": "crates/spt-live/src/resume.rs",
2026-06-21T08:16:00.3787204Z               "line": 19
2026-06-21T08:16:00.3787313Z             }
2026-06-21T08:16:00.3787418Z           ]
2026-06-21T08:16:00.3787519Z         },
2026-06-21T08:16:00.3787618Z         "int": {
2026-06-21T08:16:00.3787737Z           "complete": false,
2026-06-21T08:16:00.3787858Z           "evidence": []
2026-06-21T08:16:00.3787966Z         },
2026-06-21T08:16:00.3788076Z         "unit": {
2026-06-21T08:16:00.3788182Z           "complete": true,
2026-06-21T08:16:00.3788290Z           "evidence": [
2026-06-21T08:16:00.3788399Z             {
2026-06-21T08:16:00.3788546Z               "path": "crates/spt-live/src/resume.rs",
2026-06-21T08:16:00.3788664Z               "line": 201
2026-06-21T08:16:00.3788769Z             },
2026-06-21T08:16:00.3788880Z             {
2026-06-21T08:16:00.3789108Z               "path": "crates/spt-live/src/resume.rs",
2026-06-21T08:16:00.3789213Z               "line": 223
2026-06-21T08:16:00.3789326Z             },
2026-06-21T08:16:00.3789452Z             {
2026-06-21T08:16:00.3789599Z               "path": "crates/spt-live/src/resume.rs",
2026-06-21T08:16:00.3789704Z               "line": 244
2026-06-21T08:16:00.3789828Z             }
2026-06-21T08:16:00.3789932Z           ]
2026-06-21T08:16:00.3790038Z         }
2026-06-21T08:16:00.3790138Z       }
2026-06-21T08:16:00.3790247Z     },
2026-06-21T08:16:00.3790353Z     {
2026-06-21T08:16:00.3790471Z       "id": "REQ-SEAM-SPAWN",
2026-06-21T08:16:00.3790599Z       "title": "spawn-session seam",
2026-06-21T08:16:00.3790706Z       "requiredStages": [
2026-06-21T08:16:00.3790810Z         "impl",
2026-06-21T08:16:00.3790919Z         "unit"
2026-06-21T08:16:00.3791021Z       ],
2026-06-21T08:16:00.3791125Z       "stages": {
2026-06-21T08:16:00.3791228Z         "doc": {
2026-06-21T08:16:00.3791357Z           "complete": false,
2026-06-21T08:16:00.3791474Z           "evidence": []
2026-06-21T08:16:00.3791579Z         },
2026-06-21T08:16:00.3791694Z         "impl": {
2026-06-21T08:16:00.3791813Z           "complete": true,
2026-06-21T08:16:00.3791931Z           "evidence": [
2026-06-21T08:16:00.3792028Z             {
2026-06-21T08:16:00.3792179Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.3792290Z               "line": 20
2026-06-21T08:16:00.3792404Z             }
2026-06-21T08:16:00.3792503Z           ]
2026-06-21T08:16:00.3792609Z         },
2026-06-21T08:16:00.3792723Z         "int": {
2026-06-21T08:16:00.3792828Z           "complete": false,
2026-06-21T08:16:00.3792944Z           "evidence": []
2026-06-21T08:16:00.3793047Z         },
2026-06-21T08:16:00.3793162Z         "unit": {
2026-06-21T08:16:00.3793268Z           "complete": true,
2026-06-21T08:16:00.3793380Z           "evidence": [
2026-06-21T08:16:00.3793481Z             {
2026-06-21T08:16:00.3793621Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.3793842Z               "line": 608
2026-06-21T08:16:00.3793943Z             },
2026-06-21T08:16:00.3794131Z             {
2026-06-21T08:16:00.3794280Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.3794389Z               "line": 615
2026-06-21T08:16:00.3794498Z             },
2026-06-21T08:16:00.3794594Z             {
2026-06-21T08:16:00.3794741Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.3794842Z               "line": 721
2026-06-21T08:16:00.3794952Z             },
2026-06-21T08:16:00.3795051Z             {
2026-06-21T08:16:00.3795196Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.3795309Z               "line": 727
2026-06-21T08:16:00.3795404Z             },
2026-06-21T08:16:00.3795501Z             {
2026-06-21T08:16:00.3795634Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.3795743Z               "line": 752
2026-06-21T08:16:00.3795849Z             },
2026-06-21T08:16:00.3795962Z             {
2026-06-21T08:16:00.3796111Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T08:16:00.3796215Z               "line": 789
2026-06-21T08:16:00.3796320Z             }
2026-06-21T08:16:00.3796421Z           ]
2026-06-21T08:16:00.3796530Z         }
2026-06-21T08:16:00.3796634Z       }
2026-06-21T08:16:00.3796738Z     },
2026-06-21T08:16:00.3796844Z     {
2026-06-21T08:16:00.3796962Z       "id": "REQ-SEAM-UPDATE",
2026-06-21T08:16:00.3797159Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-21T08:16:00.3797267Z       "requiredStages": [
2026-06-21T08:16:00.3797378Z         "impl",
2026-06-21T08:16:00.3797478Z         "unit"
2026-06-21T08:16:00.3797587Z       ],
2026-06-21T08:16:00.3797693Z       "stages": {
2026-06-21T08:16:00.3797788Z         "doc": {
2026-06-21T08:16:00.3797911Z           "complete": false,
2026-06-21T08:16:00.3798021Z           "evidence": []
2026-06-21T08:16:00.3798122Z         },
2026-06-21T08:16:00.3798231Z         "impl": {
2026-06-21T08:16:00.3798351Z           "complete": true,
2026-06-21T08:16:00.3798465Z           "evidence": [
2026-06-21T08:16:00.3798565Z             {
2026-06-21T08:16:00.3798733Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T08:16:00.3798841Z               "line": 28
2026-06-21T08:16:00.3799036Z             },
2026-06-21T08:16:00.3799134Z             {
2026-06-21T08:16:00.3799300Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T08:16:00.3799449Z               "line": 88
2026-06-21T08:16:00.3799552Z             }
2026-06-21T08:16:00.3799654Z           ]
2026-06-21T08:16:00.3799754Z         },
2026-06-21T08:16:00.3799867Z         "int": {
2026-06-21T08:16:00.3799978Z           "complete": false,
2026-06-21T08:16:00.3800097Z           "evidence": []
2026-06-21T08:16:00.3800201Z         },
2026-06-21T08:16:00.3800307Z         "unit": {
2026-06-21T08:16:00.3800416Z           "complete": true,
2026-06-21T08:16:00.3800530Z           "evidence": [
2026-06-21T08:16:00.3800636Z             {
2026-06-21T08:16:00.3800788Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T08:16:00.3800898Z               "line": 326
2026-06-21T08:16:00.3801008Z             },
2026-06-21T08:16:00.3801108Z             {
2026-06-21T08:16:00.3801271Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T08:16:00.3801374Z               "line": 337
2026-06-21T08:16:00.3801484Z             }
2026-06-21T08:16:00.3801590Z           ]
2026-06-21T08:16:00.3801699Z         }
2026-06-21T08:16:00.3801802Z       }
2026-06-21T08:16:00.3801903Z     },
2026-06-21T08:16:00.3802011Z     {
2026-06-21T08:16:00.3802124Z       "id": "REQ-SEC-1",
2026-06-21T08:16:00.3802555Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-21T08:16:00.3802669Z       "requiredStages": [
2026-06-21T08:16:00.3802879Z         "impl",
2026-06-21T08:16:00.3802989Z         "unit"
2026-06-21T08:16:00.3803092Z       ],
2026-06-21T08:16:00.3803307Z       "stages": {
2026-06-21T08:16:00.3803412Z         "doc": {
2026-06-21T08:16:00.3803532Z           "complete": false,
2026-06-21T08:16:00.3803640Z           "evidence": []
2026-06-21T08:16:00.3803751Z         },
2026-06-21T08:16:00.3803857Z         "impl": {
2026-06-21T08:16:00.3803969Z           "complete": true,
2026-06-21T08:16:00.3804080Z           "evidence": [
2026-06-21T08:16:00.3804176Z             {
2026-06-21T08:16:00.3804331Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-21T08:16:00.3804441Z               "line": 86
2026-06-21T08:16:00.3804541Z             },
2026-06-21T08:16:00.3804648Z             {
2026-06-21T08:16:00.3804787Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-21T08:16:00.3804893Z               "line": 116
2026-06-21T08:16:00.3805001Z             },
2026-06-21T08:16:00.3805102Z             {
2026-06-21T08:16:00.3805259Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-21T08:16:00.3805373Z               "line": 130
2026-06-21T08:16:00.3805479Z             },
2026-06-21T08:16:00.3805574Z             {
2026-06-21T08:16:00.3805727Z               "path": "crates/spt-store/src/access.rs",
2026-06-21T08:16:00.3805835Z               "line": 109
2026-06-21T08:16:00.3805950Z             },
2026-06-21T08:16:00.3806056Z             {
2026-06-21T08:16:00.3806194Z               "path": "crates/spt-store/src/access.rs",
2026-06-21T08:16:00.3806317Z               "line": 130
2026-06-21T08:16:00.3806424Z             },
2026-06-21T08:16:00.3806527Z             {
2026-06-21T08:16:00.3806667Z               "path": "crates/spt-store/src/access.rs",
2026-06-21T08:16:00.3806780Z               "line": 143
2026-06-21T08:16:00.3806885Z             },
2026-06-21T08:16:00.3806986Z             {
2026-06-21T08:16:00.3807137Z               "path": "crates/spt-store/src/access.rs",
2026-06-21T08:16:00.3807246Z               "line": 209
2026-06-21T08:16:00.3807361Z             },
2026-06-21T08:16:00.3807461Z             {
2026-06-21T08:16:00.3807608Z               "path": "crates/spt-store/src/access.rs",
2026-06-21T08:16:00.3807728Z               "line": 235
2026-06-21T08:16:00.3807818Z             },
2026-06-21T08:16:00.3807928Z             {
2026-06-21T08:16:00.3808067Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3808180Z               "line": 5295
2026-06-21T08:16:00.3808281Z             }
2026-06-21T08:16:00.3808386Z           ]
2026-06-21T08:16:00.3808495Z         },
2026-06-21T08:16:00.3808601Z         "int": {
2026-06-21T08:16:00.3808719Z           "complete": false,
2026-06-21T08:16:00.3808820Z           "evidence": []
2026-06-21T08:16:00.3808921Z         },
2026-06-21T08:16:00.3809110Z         "unit": {
2026-06-21T08:16:00.3809226Z           "complete": true,
2026-06-21T08:16:00.3809345Z           "evidence": [
2026-06-21T08:16:00.3809457Z             {
2026-06-21T08:16:00.3809606Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-21T08:16:00.3809718Z               "line": 142
2026-06-21T08:16:00.3809822Z             },
2026-06-21T08:16:00.3809923Z             {
2026-06-21T08:16:00.3810066Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-21T08:16:00.3810189Z               "line": 194
2026-06-21T08:16:00.3810291Z             },
2026-06-21T08:16:00.3810394Z             {
2026-06-21T08:16:00.3810529Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-21T08:16:00.3810638Z               "line": 235
2026-06-21T08:16:00.3810747Z             },
2026-06-21T08:16:00.3810854Z             {
2026-06-21T08:16:00.3811000Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-21T08:16:00.3811105Z               "line": 140
2026-06-21T08:16:00.3811210Z             },
2026-06-21T08:16:00.3811305Z             {
2026-06-21T08:16:00.3811454Z               "path": "crates/spt-store/src/access.rs",
2026-06-21T08:16:00.3811559Z               "line": 247
2026-06-21T08:16:00.3811773Z             },
2026-06-21T08:16:00.3811883Z             {
2026-06-21T08:16:00.3812026Z               "path": "crates/spt-store/src/access.rs",
2026-06-21T08:16:00.3812226Z               "line": 277
2026-06-21T08:16:00.3812329Z             },
2026-06-21T08:16:00.3812434Z             {
2026-06-21T08:16:00.3812580Z               "path": "crates/spt-store/src/access.rs",
2026-06-21T08:16:00.3812684Z               "line": 310
2026-06-21T08:16:00.3812795Z             },
2026-06-21T08:16:00.3812900Z             {
2026-06-21T08:16:00.3813047Z               "path": "crates/spt-store/src/access.rs",
2026-06-21T08:16:00.3813153Z               "line": 329
2026-06-21T08:16:00.3813262Z             },
2026-06-21T08:16:00.3813367Z             {
2026-06-21T08:16:00.3813510Z               "path": "crates/spt-store/src/access.rs",
2026-06-21T08:16:00.3813619Z               "line": 362
2026-06-21T08:16:00.3813715Z             },
2026-06-21T08:16:00.3813825Z             {
2026-06-21T08:16:00.3813957Z               "path": "crates/spt-store/src/access.rs",
2026-06-21T08:16:00.3814078Z               "line": 386
2026-06-21T08:16:00.3814191Z             },
2026-06-21T08:16:00.3814301Z             {
2026-06-21T08:16:00.3814445Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3814559Z               "line": 8296
2026-06-21T08:16:00.3814665Z             }
2026-06-21T08:16:00.3814765Z           ]
2026-06-21T08:16:00.3814867Z         }
2026-06-21T08:16:00.3814967Z       }
2026-06-21T08:16:00.3815073Z     },
2026-06-21T08:16:00.3815180Z     {
2026-06-21T08:16:00.3815309Z       "id": "REQ-SEND-SPT-HOSTED",
2026-06-21T08:16:00.3819127Z       "title": "An inbound `spt send` is DELIVERED to an spt-hosted endpoint (brought up via `spt endpoint run` → `api bind`, broker holds its PTY, NO `api listen` relay). Today cmd_bind→establish_perch (api/startup.rs ~441) writes info.json + ready marker + controllable=Some(true) but registers NO message-listener / NO address, so deliver.rs resolve_address→None→spool (deliver.rs:132-140) and the message NEVER reaches the live PTY — the endpoint reads 'online' (ready marker) yet `spt send` silently SPOOLS ('online but not deliverable' lie). Per CONTEXT:187-188 the daemon owns the PTY and delivers, manifest-configurable per activity-state (direct PTY injection / relay / HTTP). FIX: route an inbound send for an spt-hosted target through the daemon → broker InputReq → session.write_input PTY-inject (broker.rs dispatch_input/write_input ~988-1022), the same path the brain uses; the live-delivery handshake must report Sent (not Queued) and stop the spool-only fallback for a broker-hosted, PTY-resident endpoint. Detection is local: controllable==Some(true) + spt-hosted state + resolve_address==None. = the spt-core HALF of the wall-b finding (perri owns the adapter half: bind-hook fired-zero-perch + the missing endpoint-run int test). (post-v0.10.0)",
2026-06-21T08:16:00.3819303Z       "requiredStages": [
2026-06-21T08:16:00.3819423Z         "impl",
2026-06-21T08:16:00.3819519Z         "unit",
2026-06-21T08:16:00.3819642Z         "int"
2026-06-21T08:16:00.3819747Z       ],
2026-06-21T08:16:00.3819858Z       "stages": {
2026-06-21T08:16:00.3819975Z         "doc": {
2026-06-21T08:16:00.3820099Z           "complete": false,
2026-06-21T08:16:00.3820208Z           "evidence": []
2026-06-21T08:16:00.3820302Z         },
2026-06-21T08:16:00.3820411Z         "impl": {
2026-06-21T08:16:00.3820522Z           "complete": true,
2026-06-21T08:16:00.3820645Z           "evidence": [
2026-06-21T08:16:00.3820745Z             {
2026-06-21T08:16:00.3820898Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.3821016Z               "line": 1066
2026-06-21T08:16:00.3821122Z             },
2026-06-21T08:16:00.3821231Z             {
2026-06-21T08:16:00.3821384Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.3821503Z               "line": 1857
2026-06-21T08:16:00.3821603Z             },
2026-06-21T08:16:00.3821704Z             {
2026-06-21T08:16:00.3821837Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3822053Z               "line": 2850
2026-06-21T08:16:00.3822156Z             }
2026-06-21T08:16:00.3822348Z           ]
2026-06-21T08:16:00.3822457Z         },
2026-06-21T08:16:00.3822562Z         "int": {
2026-06-21T08:16:00.3822687Z           "complete": true,
2026-06-21T08:16:00.3822800Z           "evidence": [
2026-06-21T08:16:00.3822904Z             {
2026-06-21T08:16:00.3823052Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-21T08:16:00.3823164Z               "line": 189
2026-06-21T08:16:00.3823283Z             },
2026-06-21T08:16:00.3823374Z             {
2026-06-21T08:16:00.3823531Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-21T08:16:00.3823651Z               "line": 524
2026-06-21T08:16:00.3823756Z             }
2026-06-21T08:16:00.3823864Z           ]
2026-06-21T08:16:00.3823966Z         },
2026-06-21T08:16:00.3824075Z         "unit": {
2026-06-21T08:16:00.3824189Z           "complete": true,
2026-06-21T08:16:00.3824309Z           "evidence": [
2026-06-21T08:16:00.3824413Z             {
2026-06-21T08:16:00.3824556Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T08:16:00.3824676Z               "line": 952
2026-06-21T08:16:00.3824785Z             },
2026-06-21T08:16:00.3824895Z             {
2026-06-21T08:16:00.3825029Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3825147Z               "line": 7486
2026-06-21T08:16:00.3825244Z             }
2026-06-21T08:16:00.3825348Z           ]
2026-06-21T08:16:00.3825447Z         }
2026-06-21T08:16:00.3825532Z       }
2026-06-21T08:16:00.3825642Z     },
2026-06-21T08:16:00.3825740Z     {
2026-06-21T08:16:00.3825888Z       "id": "REQ-SESSION-RESUME-TEMPLATE",
2026-06-21T08:16:00.3832774Z       "title": "Resuming an endpoint session that HAS conversation history brings up a BLANK session. ROOT (doyle, code-grounded + CONTEXT — case-3 spt-core MISSING feature, NOT a perri docs-miss): CONTEXT L127-129 already defines the resume-session seam ('continue-existing: resume an existing harness session under the adapter — its NATIVE resume'), and the manifest already has the resume-variant pattern (Session has BOTH psyche_init AND psyche_resume, manifest.rs:217-219) — but the agent's own session has ONLY self_ (`[session.self]`, no resume sibling). cmd_endpoint_run (cli.rs:1304) re-passes the session_id through `[session.self]` on resume (resume.unwrap_or_else(mint_session_id)), so the adapter's FRESH command (e.g. `claude --session-id ..`) runs again instead of the harness NATIVE resume (`claude -r ..`) -> CC starts a fresh transcript -> blank. spt-core forwards session_id + cwd faithfully; it just has no way to express the native-resume invocation. SECOND GAP: CC resolves a transcript by session_id + cwd, but the session ledger records only {ts, session_id, trigger} (no cwd), so picker Resume-from-history (cross-project rows) can't restore the right cwd. FIX (doyle design, V0.13.0-P2-SESSION-RESUME-DESIGN.md, mirrors psyche_init->psyche_resume exactly): (A) add a `[session.resume]` role (resume: Option<SessionRole> on Session + roles()/is_empty()); cmd_endpoint_run selects it when --resume is set AND it's declared (fill {id}/{session_id}=resumed id/{session_name} + the resume cwd), else FALL BACK to `[session.self]` (full back-compat). (B) record cwd PER ledger row (operator ruling): {ts, session_id, trigger, cwd} additive serde-default; resume cwd = resumed row cwd -> else perch info.cwd -> else current_dir (back-compat for old rows + single-project endpoints); picker threads the selected row's cwd through Outcome::Run -> cmd_endpoint_run. (C) public docs (MANIFEST + harness-contract) teach `[session.resume]` so perri builds the adapter side BLIND. Adapter follow-on (perri, AFTER spt-core ships+docs): declare `[session.resume] command = claude -r {session_id} --remote-control {id} --dangerously-skip-permissions` from the resume cwd. Completes REQ-READY-AGENT-RESUME / REQ-RUN-PICKER resume-from-history. (v0.13.0)",
2026-06-21T08:16:00.3832971Z       "requiredStages": [
2026-06-21T08:16:00.3833179Z         "doc",
2026-06-21T08:16:00.3833295Z         "impl",
2026-06-21T08:16:00.3833482Z         "unit",
2026-06-21T08:16:00.3833593Z         "int"
2026-06-21T08:16:00.3833691Z       ],
2026-06-21T08:16:00.3833800Z       "stages": {
2026-06-21T08:16:00.3833901Z         "doc": {
2026-06-21T08:16:00.3834015Z           "complete": true,
2026-06-21T08:16:00.3834124Z           "evidence": [
2026-06-21T08:16:00.3834226Z             {
2026-06-21T08:16:00.3834401Z               "path": "docs-site/src/harness-contract/manifest.md",
2026-06-21T08:16:00.3834511Z               "line": 130
2026-06-21T08:16:00.3834611Z             },
2026-06-21T08:16:00.3834715Z             {
2026-06-21T08:16:00.3834845Z               "path": "docs/MANIFEST.md",
2026-06-21T08:16:00.3834954Z               "line": 96
2026-06-21T08:16:00.3835059Z             }
2026-06-21T08:16:00.3835160Z           ]
2026-06-21T08:16:00.3835274Z         },
2026-06-21T08:16:00.3835383Z         "impl": {
2026-06-21T08:16:00.3835504Z           "complete": true,
2026-06-21T08:16:00.3835617Z           "evidence": [
2026-06-21T08:16:00.3835722Z             {
2026-06-21T08:16:00.3835880Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T08:16:00.3835997Z               "line": 77
2026-06-21T08:16:00.3836102Z             },
2026-06-21T08:16:00.3836202Z             {
2026-06-21T08:16:00.3836362Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T08:16:00.3836472Z               "line": 183
2026-06-21T08:16:00.3836587Z             },
2026-06-21T08:16:00.3836691Z             {
2026-06-21T08:16:00.3836850Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3836968Z               "line": 222
2026-06-21T08:16:00.3837073Z             },
2026-06-21T08:16:00.3837183Z             {
2026-06-21T08:16:00.3837325Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-21T08:16:00.3837440Z               "line": 71
2026-06-21T08:16:00.3837544Z             },
2026-06-21T08:16:00.3837654Z             {
2026-06-21T08:16:00.3837803Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3837917Z               "line": 176
2026-06-21T08:16:00.3838027Z             }
2026-06-21T08:16:00.3838122Z           ]
2026-06-21T08:16:00.3838227Z         },
2026-06-21T08:16:00.3838337Z         "int": {
2026-06-21T08:16:00.3838451Z           "complete": true,
2026-06-21T08:16:00.3838570Z           "evidence": [
2026-06-21T08:16:00.3838662Z             {
2026-06-21T08:16:00.3838818Z               "path": "crates/spt/tests/resume_template_e2e.rs",
2026-06-21T08:16:00.3838936Z               "line": 25
2026-06-21T08:16:00.3839137Z             }
2026-06-21T08:16:00.3839241Z           ]
2026-06-21T08:16:00.3839390Z         },
2026-06-21T08:16:00.3839490Z         "unit": {
2026-06-21T08:16:00.3839599Z           "complete": true,
2026-06-21T08:16:00.3839705Z           "evidence": [
2026-06-21T08:16:00.3839805Z             {
2026-06-21T08:16:00.3839957Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T08:16:00.3840066Z               "line": 341
2026-06-21T08:16:00.3840175Z             },
2026-06-21T08:16:00.3840282Z             {
2026-06-21T08:16:00.3840423Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T08:16:00.3840533Z               "line": 391
2026-06-21T08:16:00.3840635Z             },
2026-06-21T08:16:00.3840738Z             {
2026-06-21T08:16:00.3840877Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3840988Z               "line": 1244
2026-06-21T08:16:00.3841100Z             },
2026-06-21T08:16:00.3841204Z             {
2026-06-21T08:16:00.3841347Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-21T08:16:00.3841450Z               "line": 184
2026-06-21T08:16:00.3841556Z             },
2026-06-21T08:16:00.3841661Z             {
2026-06-21T08:16:00.3841798Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-21T08:16:00.3841899Z               "line": 208
2026-06-21T08:16:00.3842127Z             },
2026-06-21T08:16:00.3842233Z             {
2026-06-21T08:16:00.3842371Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-21T08:16:00.3842577Z               "line": 236
2026-06-21T08:16:00.3842686Z             },
2026-06-21T08:16:00.3842785Z             {
2026-06-21T08:16:00.3842920Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T08:16:00.3843028Z               "line": 945
2026-06-21T08:16:00.3843139Z             }
2026-06-21T08:16:00.3843244Z           ]
2026-06-21T08:16:00.3843358Z         }
2026-06-21T08:16:00.3843464Z       }
2026-06-21T08:16:00.3843568Z     },
2026-06-21T08:16:00.3843677Z     {
2026-06-21T08:16:00.3843783Z       "id": "REQ-SHELL-1",
2026-06-21T08:16:00.3844680Z       "title": "Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-launched binary + api bind local-link handshake, the three channels (command durable, text+file durable + progress-queryable, sensory REST-only never spooled + dropped-unless-owner-live), owner exclusivity (CONTEXT Shell model)",
2026-06-21T08:16:00.3844809Z       "requiredStages": [
2026-06-21T08:16:00.3844909Z         "impl",
2026-06-21T08:16:00.3845022Z         "unit",
2026-06-21T08:16:00.3845120Z         "int"
2026-06-21T08:16:00.3845229Z       ],
2026-06-21T08:16:00.3845337Z       "stages": {
2026-06-21T08:16:00.3845449Z         "doc": {
2026-06-21T08:16:00.3845567Z           "complete": false,
2026-06-21T08:16:00.3845671Z           "evidence": []
2026-06-21T08:16:00.3845768Z         },
2026-06-21T08:16:00.3845872Z         "impl": {
2026-06-21T08:16:00.3845991Z           "complete": true,
2026-06-21T08:16:00.3846102Z           "evidence": [
2026-06-21T08:16:00.3846210Z             {
2026-06-21T08:16:00.3846359Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T08:16:00.3846468Z               "line": 189
2026-06-21T08:16:00.3846572Z             },
2026-06-21T08:16:00.3846672Z             {
2026-06-21T08:16:00.3846832Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T08:16:00.3846950Z               "line": 268
2026-06-21T08:16:00.3847061Z             },
2026-06-21T08:16:00.3847170Z             {
2026-06-21T08:16:00.3847308Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-21T08:16:00.3847438Z               "line": 27
2026-06-21T08:16:00.3847542Z             },
2026-06-21T08:16:00.3847648Z             {
2026-06-21T08:16:00.3847776Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-21T08:16:00.3847885Z               "line": 52
2026-06-21T08:16:00.3847996Z             },
2026-06-21T08:16:00.3848096Z             {
2026-06-21T08:16:00.3848238Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-21T08:16:00.3848344Z               "line": 144
2026-06-21T08:16:00.3848448Z             },
2026-06-21T08:16:00.3848553Z             {
2026-06-21T08:16:00.3848687Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-21T08:16:00.3848792Z               "line": 176
2026-06-21T08:16:00.3848902Z             },
2026-06-21T08:16:00.3849087Z             {
2026-06-21T08:16:00.3849217Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.3849336Z               "line": 22
2026-06-21T08:16:00.3849443Z             },
2026-06-21T08:16:00.3849573Z             {
2026-06-21T08:16:00.3849716Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.3849815Z               "line": 65
2026-06-21T08:16:00.3849916Z             },
2026-06-21T08:16:00.3850017Z             {
2026-06-21T08:16:00.3850154Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.3850260Z               "line": 76
2026-06-21T08:16:00.3850360Z             },
2026-06-21T08:16:00.3850493Z             {
2026-06-21T08:16:00.3850641Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.3850754Z               "line": 151
2026-06-21T08:16:00.3850861Z             },
2026-06-21T08:16:00.3851008Z             {
2026-06-21T08:16:00.3851341Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.3851447Z               "line": 210
2026-06-21T08:16:00.3851660Z             },
2026-06-21T08:16:00.3851769Z             {
2026-06-21T08:16:00.3851959Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.3852063Z               "line": 259
2026-06-21T08:16:00.3852173Z             },
2026-06-21T08:16:00.3852283Z             {
2026-06-21T08:16:00.3852420Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.3852531Z               "line": 281
2026-06-21T08:16:00.3852630Z             },
2026-06-21T08:16:00.3852740Z             {
2026-06-21T08:16:00.3852878Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.3852987Z               "line": 294
2026-06-21T08:16:00.3853098Z             },
2026-06-21T08:16:00.3853203Z             {
2026-06-21T08:16:00.3853336Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.3853442Z               "line": 217
2026-06-21T08:16:00.3853551Z             },
2026-06-21T08:16:00.3853646Z             {
2026-06-21T08:16:00.3853786Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.3853899Z               "line": 233
2026-06-21T08:16:00.3853999Z             },
2026-06-21T08:16:00.3854105Z             {
2026-06-21T08:16:00.3854247Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T08:16:00.3854372Z               "line": 41
2026-06-21T08:16:00.3854481Z             },
2026-06-21T08:16:00.3854589Z             {
2026-06-21T08:16:00.3854728Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T08:16:00.3854835Z               "line": 222
2026-06-21T08:16:00.3854944Z             },
2026-06-21T08:16:00.3855045Z             {
2026-06-21T08:16:00.3855187Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T08:16:00.3855292Z               "line": 173
2026-06-21T08:16:00.3855393Z             },
2026-06-21T08:16:00.3855483Z             {
2026-06-21T08:16:00.3855617Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T08:16:00.3855731Z               "line": 354
2026-06-21T08:16:00.3855831Z             },
2026-06-21T08:16:00.3855941Z             {
2026-06-21T08:16:00.3856069Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T08:16:00.3856174Z               "line": 419
2026-06-21T08:16:00.3856280Z             },
2026-06-21T08:16:00.3856370Z             {
2026-06-21T08:16:00.3856513Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.3856614Z               "line": 333
2026-06-21T08:16:00.3856723Z             },
2026-06-21T08:16:00.3861959Z             {
2026-06-21T08:16:00.3862168Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3862287Z               "line": 6320
2026-06-21T08:16:00.3862396Z             },
2026-06-21T08:16:00.3862500Z             {
2026-06-21T08:16:00.3862628Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3862748Z               "line": 6470
2026-06-21T08:16:00.3862876Z             },
2026-06-21T08:16:00.3862985Z             {
2026-06-21T08:16:00.3863110Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3863238Z               "line": 6646
2026-06-21T08:16:00.3863334Z             }
2026-06-21T08:16:00.3863443Z           ]
2026-06-21T08:16:00.3863552Z         },
2026-06-21T08:16:00.3863658Z         "int": {
2026-06-21T08:16:00.3863767Z           "complete": true,
2026-06-21T08:16:00.3863876Z           "evidence": [
2026-06-21T08:16:00.3863978Z             {
2026-06-21T08:16:00.3864140Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T08:16:00.3864244Z               "line": 713
2026-06-21T08:16:00.3864346Z             },
2026-06-21T08:16:00.3864459Z             {
2026-06-21T08:16:00.3864613Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-21T08:16:00.3864726Z               "line": 8
2026-06-21T08:16:00.3864855Z             },
2026-06-21T08:16:00.3864966Z             {
2026-06-21T08:16:00.3865316Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-21T08:16:00.3865428Z               "line": 49
2026-06-21T08:16:00.3865634Z             },
2026-06-21T08:16:00.3865733Z             {
2026-06-21T08:16:00.3865891Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.3865996Z               "line": 778
2026-06-21T08:16:00.3866124Z             },
2026-06-21T08:16:00.3866273Z             {
2026-06-21T08:16:00.3866424Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.3866540Z               "line": 1213
2026-06-21T08:16:00.3866644Z             },
2026-06-21T08:16:00.3866749Z             {
2026-06-21T08:16:00.3866893Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-21T08:16:00.3867001Z               "line": 17
2026-06-21T08:16:00.3867107Z             },
2026-06-21T08:16:00.3867213Z             {
2026-06-21T08:16:00.3867350Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-21T08:16:00.3867456Z               "line": 14
2026-06-21T08:16:00.3867565Z             }
2026-06-21T08:16:00.3867668Z           ]
2026-06-21T08:16:00.3867778Z         },
2026-06-21T08:16:00.3867878Z         "unit": {
2026-06-21T08:16:00.3868033Z           "complete": true,
2026-06-21T08:16:00.3868148Z           "evidence": [
2026-06-21T08:16:00.3868249Z             {
2026-06-21T08:16:00.3868385Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-21T08:16:00.3868496Z               "line": 246
2026-06-21T08:16:00.3868601Z             },
2026-06-21T08:16:00.3868700Z             {
2026-06-21T08:16:00.3868920Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-21T08:16:00.3869102Z               "line": 279
2026-06-21T08:16:00.3869192Z             },
2026-06-21T08:16:00.3869325Z             {
2026-06-21T08:16:00.3869569Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-21T08:16:00.3869703Z               "line": 319
2026-06-21T08:16:00.3869802Z             },
2026-06-21T08:16:00.3869912Z             {
2026-06-21T08:16:00.3870056Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.3870159Z               "line": 599
2026-06-21T08:16:00.3870270Z             },
2026-06-21T08:16:00.3870366Z             {
2026-06-21T08:16:00.3870502Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.3870606Z               "line": 672
2026-06-21T08:16:00.3870708Z             },
2026-06-21T08:16:00.3870813Z             {
2026-06-21T08:16:00.3870945Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.3871051Z               "line": 816
2026-06-21T08:16:00.3871151Z             },
2026-06-21T08:16:00.3871255Z             {
2026-06-21T08:16:00.3871390Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.3871499Z               "line": 595
2026-06-21T08:16:00.3871604Z             },
2026-06-21T08:16:00.3871704Z             {
2026-06-21T08:16:00.3871851Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T08:16:00.3871962Z               "line": 399
2026-06-21T08:16:00.3872076Z             },
2026-06-21T08:16:00.3872185Z             {
2026-06-21T08:16:00.3872311Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3872423Z               "line": 8976
2026-06-21T08:16:00.3872524Z             },
2026-06-21T08:16:00.3872635Z             {
2026-06-21T08:16:00.3872752Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3872866Z               "line": 9300
2026-06-21T08:16:00.3872971Z             },
2026-06-21T08:16:00.3873074Z             {
2026-06-21T08:16:00.3873197Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3873303Z               "line": 9717
2026-06-21T08:16:00.3873412Z             }
2026-06-21T08:16:00.3873512Z           ]
2026-06-21T08:16:00.3873613Z         }
2026-06-21T08:16:00.3873722Z       }
2026-06-21T08:16:00.3873817Z     },
2026-06-21T08:16:00.3873918Z     {
2026-06-21T08:16:00.3874056Z       "id": "REQ-SHELL-2",
2026-06-21T08:16:00.3875766Z       "title": "Shell sleep/wake: link-break always closes the binary (pre-close instruction + termination timeout), ephemeral teardown vs persistent offline/relink, wake_command wake-watcher (offline-only, exit-opcode supervision, exponential backoff + give-up), state-keyed wake resolution (dormant/suspended/active-elsewhere; no-reachable refuses — spawn-anywhere branch deferred), spt shutdown owner cascade + api owner-shutdown gated by can_shutdown (CONTEXT Shell sleep/wake)",
2026-06-21T08:16:00.3876083Z       "requiredStages": [
2026-06-21T08:16:00.3876190Z         "impl",
2026-06-21T08:16:00.3876299Z         "unit",
2026-06-21T08:16:00.3876393Z         "int"
2026-06-21T08:16:00.3876500Z       ],
2026-06-21T08:16:00.3876609Z       "stages": {
2026-06-21T08:16:00.3876713Z         "doc": {
2026-06-21T08:16:00.3876838Z           "complete": false,
2026-06-21T08:16:00.3876942Z           "evidence": []
2026-06-21T08:16:00.3877056Z         },
2026-06-21T08:16:00.3877162Z         "impl": {
2026-06-21T08:16:00.3877290Z           "complete": true,
2026-06-21T08:16:00.3877401Z           "evidence": [
2026-06-21T08:16:00.3877510Z             {
2026-06-21T08:16:00.3877667Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.3877778Z               "line": 217
2026-06-21T08:16:00.3877881Z             },
2026-06-21T08:16:00.3877977Z             {
2026-06-21T08:16:00.3878130Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T08:16:00.3878233Z               "line": 403
2026-06-21T08:16:00.3878338Z             },
2026-06-21T08:16:00.3878438Z             {
2026-06-21T08:16:00.3878565Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T08:16:00.3878675Z               "line": 250
2026-06-21T08:16:00.3878775Z             },
2026-06-21T08:16:00.3878888Z             {
2026-06-21T08:16:00.3879108Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.3879203Z               "line": 403
2026-06-21T08:16:00.3879328Z             },
2026-06-21T08:16:00.3879442Z             {
2026-06-21T08:16:00.3879585Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T08:16:00.3879696Z               "line": 30
2026-06-21T08:16:00.3879805Z             },
2026-06-21T08:16:00.3879909Z             {
2026-06-21T08:16:00.3880053Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T08:16:00.3880162Z               "line": 409
2026-06-21T08:16:00.3880268Z             },
2026-06-21T08:16:00.3880372Z             {
2026-06-21T08:16:00.3880510Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T08:16:00.3880626Z               "line": 445
2026-06-21T08:16:00.3880724Z             },
2026-06-21T08:16:00.3880825Z             {
2026-06-21T08:16:00.3880969Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T08:16:00.3881076Z               "line": 660
2026-06-21T08:16:00.3881171Z             },
2026-06-21T08:16:00.3881277Z             {
2026-06-21T08:16:00.3881415Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.3881539Z               "line": 348
2026-06-21T08:16:00.3881640Z             },
2026-06-21T08:16:00.3881748Z             {
2026-06-21T08:16:00.3881878Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-21T08:16:00.3881988Z               "line": 115
2026-06-21T08:16:00.3882092Z             },
2026-06-21T08:16:00.3882188Z             {
2026-06-21T08:16:00.3882335Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.3882430Z               "line": 120
2026-06-21T08:16:00.3882541Z             },
2026-06-21T08:16:00.3882640Z             {
2026-06-21T08:16:00.3882783Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.3882890Z               "line": 374
2026-06-21T08:16:00.3883003Z             },
2026-06-21T08:16:00.3883103Z             {
2026-06-21T08:16:00.3883246Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.3883355Z               "line": 500
2026-06-21T08:16:00.3883573Z             },
2026-06-21T08:16:00.3883682Z             {
2026-06-21T08:16:00.3883820Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T08:16:00.3884024Z               "line": 24
2026-06-21T08:16:00.3884125Z             },
2026-06-21T08:16:00.3884240Z             {
2026-06-21T08:16:00.3884386Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T08:16:00.3884512Z               "line": 76
2026-06-21T08:16:00.3884602Z             },
2026-06-21T08:16:00.3884682Z             {
2026-06-21T08:16:00.3884807Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T08:16:00.3884902Z               "line": 154
2026-06-21T08:16:00.3884988Z             },
2026-06-21T08:16:00.3885064Z             {
2026-06-21T08:16:00.3885188Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T08:16:00.3885279Z               "line": 177
2026-06-21T08:16:00.3885355Z             },
2026-06-21T08:16:00.3885437Z             {
2026-06-21T08:16:00.3885555Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T08:16:00.3885645Z               "line": 273
2026-06-21T08:16:00.3885743Z             },
2026-06-21T08:16:00.3885823Z             {
2026-06-21T08:16:00.3885942Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T08:16:00.3886028Z               "line": 456
2026-06-21T08:16:00.3886114Z             },
2026-06-21T08:16:00.3886194Z             {
2026-06-21T08:16:00.3886307Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T08:16:00.3886398Z               "line": 538
2026-06-21T08:16:00.3886483Z             },
2026-06-21T08:16:00.3886567Z             {
2026-06-21T08:16:00.3886702Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-21T08:16:00.3886787Z               "line": 27
2026-06-21T08:16:00.3886878Z             },
2026-06-21T08:16:00.3886963Z             {
2026-06-21T08:16:00.3887093Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-21T08:16:00.3887183Z               "line": 48
2026-06-21T08:16:00.3887278Z             },
2026-06-21T08:16:00.3887369Z             {
2026-06-21T08:16:00.3887488Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.3887578Z               "line": 517
2026-06-21T08:16:00.3887665Z             },
2026-06-21T08:16:00.3887750Z             {
2026-06-21T08:16:00.3887855Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3887946Z               "line": 1921
2026-06-21T08:16:00.3888032Z             },
2026-06-21T08:16:00.3888103Z             {
2026-06-21T08:16:00.3888208Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3888295Z               "line": 6334
2026-06-21T08:16:00.3888385Z             },
2026-06-21T08:16:00.3888470Z             {
2026-06-21T08:16:00.3888576Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3888671Z               "line": 6395
2026-06-21T08:16:00.3888746Z             },
2026-06-21T08:16:00.3888832Z             {
2026-06-21T08:16:00.3888932Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3889210Z               "line": 6423
2026-06-21T08:16:00.3889307Z             },
2026-06-21T08:16:00.3889397Z             {
2026-06-21T08:16:00.3889501Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3889588Z               "line": 6477
2026-06-21T08:16:00.3889673Z             },
2026-06-21T08:16:00.3889758Z             {
2026-06-21T08:16:00.3889864Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3889955Z               "line": 6732
2026-06-21T08:16:00.3890036Z             },
2026-06-21T08:16:00.3890116Z             {
2026-06-21T08:16:00.3890217Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3890298Z               "line": 6792
2026-06-21T08:16:00.3890370Z             },
2026-06-21T08:16:00.3890460Z             {
2026-06-21T08:16:00.3890571Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T08:16:00.3890660Z               "line": 298
2026-06-21T08:16:00.3890741Z             },
2026-06-21T08:16:00.3890947Z             {
2026-06-21T08:16:00.3891051Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T08:16:00.3891262Z               "line": 339
2026-06-21T08:16:00.3891352Z             }
2026-06-21T08:16:00.3891428Z           ]
2026-06-21T08:16:00.3891510Z         },
2026-06-21T08:16:00.3891600Z         "int": {
2026-06-21T08:16:00.3891694Z           "complete": true,
2026-06-21T08:16:00.3891789Z           "evidence": [
2026-06-21T08:16:00.3891866Z             {
2026-06-21T08:16:00.3891999Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T08:16:00.3892084Z               "line": 706
2026-06-21T08:16:00.3892167Z             },
2026-06-21T08:16:00.3892248Z             {
2026-06-21T08:16:00.3892371Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.3892453Z               "line": 778
2026-06-21T08:16:00.3892538Z             },
2026-06-21T08:16:00.3892619Z             {
2026-06-21T08:16:00.3892738Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.3892834Z               "line": 1213
2026-06-21T08:16:00.3892920Z             },
2026-06-21T08:16:00.3893005Z             {
2026-06-21T08:16:00.3893140Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-21T08:16:00.3893224Z               "line": 18
2026-06-21T08:16:00.3893315Z             }
2026-06-21T08:16:00.3893392Z           ]
2026-06-21T08:16:00.3893478Z         },
2026-06-21T08:16:00.3893567Z         "unit": {
2026-06-21T08:16:00.3893654Z           "complete": true,
2026-06-21T08:16:00.3893736Z           "evidence": [
2026-06-21T08:16:00.3893821Z             {
2026-06-21T08:16:00.3893934Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T08:16:00.3894029Z               "line": 744
2026-06-21T08:16:00.3894110Z             },
2026-06-21T08:16:00.3894189Z             {
2026-06-21T08:16:00.3894308Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T08:16:00.3894395Z               "line": 796
2026-06-21T08:16:00.3894481Z             },
2026-06-21T08:16:00.3894570Z             {
2026-06-21T08:16:00.3894685Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.3894757Z               "line": 705
2026-06-21T08:16:00.3894847Z             },
2026-06-21T08:16:00.3894923Z             {
2026-06-21T08:16:00.3895039Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.3895119Z               "line": 754
2026-06-21T08:16:00.3895209Z             },
2026-06-21T08:16:00.3895296Z             {
2026-06-21T08:16:00.3895405Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.3895491Z               "line": 778
2026-06-21T08:16:00.3895576Z             },
2026-06-21T08:16:00.3895659Z             {
2026-06-21T08:16:00.3895767Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T08:16:00.3895853Z               "line": 603
2026-06-21T08:16:00.3895935Z             },
2026-06-21T08:16:00.3896016Z             {
2026-06-21T08:16:00.3896130Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T08:16:00.3896225Z               "line": 624
2026-06-21T08:16:00.3896322Z             },
2026-06-21T08:16:00.3896406Z             {
2026-06-21T08:16:00.3896526Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T08:16:00.3896618Z               "line": 660
2026-06-21T08:16:00.3896693Z             },
2026-06-21T08:16:00.3896782Z             {
2026-06-21T08:16:00.3896915Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T08:16:00.3897019Z               "line": 714
2026-06-21T08:16:00.3897109Z             },
2026-06-21T08:16:00.3897180Z             {
2026-06-21T08:16:00.3897300Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T08:16:00.3897376Z               "line": 732
2026-06-21T08:16:00.3897457Z             },
2026-06-21T08:16:00.3897542Z             {
2026-06-21T08:16:00.3897667Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T08:16:00.3897757Z               "line": 766
2026-06-21T08:16:00.3897915Z             },
2026-06-21T08:16:00.3898005Z             {
2026-06-21T08:16:00.3898119Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T08:16:00.3898268Z               "line": 841
2026-06-21T08:16:00.3898339Z             },
2026-06-21T08:16:00.3898429Z             {
2026-06-21T08:16:00.3898554Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-21T08:16:00.3898639Z               "line": 85
2026-06-21T08:16:00.3898720Z             },
2026-06-21T08:16:00.3898797Z             {
2026-06-21T08:16:00.3898907Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3899092Z               "line": 8044
2026-06-21T08:16:00.3899193Z             },
2026-06-21T08:16:00.3899288Z             {
2026-06-21T08:16:00.3899382Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3899487Z               "line": 9054
2026-06-21T08:16:00.3899572Z             },
2026-06-21T08:16:00.3899657Z             {
2026-06-21T08:16:00.3899761Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3899852Z               "line": 9124
2026-06-21T08:16:00.3899939Z             },
2026-06-21T08:16:00.3900023Z             {
2026-06-21T08:16:00.3900134Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3900224Z               "line": 9162
2026-06-21T08:16:00.3900305Z             }
2026-06-21T08:16:00.3900376Z           ]
2026-06-21T08:16:00.3900463Z         }
2026-06-21T08:16:00.3900553Z       }
2026-06-21T08:16:00.3900634Z     },
2026-06-21T08:16:00.3900715Z     {
2026-06-21T08:16:00.3900806Z       "id": "REQ-SHELL-3",
2026-06-21T08:16:00.3902611Z       "title": "Drive channel (owner->shell, REST-only, never-spooled, latest-wins): the owner->shell mirror of sensory for continuous real-time control (scroll/crank/stick/avatar) — a [shell.drive] manifest vocab + EVENT_TYPE_DRIVE frame, delivered to the ONLINE binary only via a single live slot (a new frame supersedes an undelivered one — no spool, no queue, no replay on relink), dropped-with-diagnostic if the shell is offline; cross-node rides the ephemeral link (REST class), never the durable shell spool. Commands = discrete+durable; drive = continuous+ephemeral (CONTEXT:260, minted 2026-06-11 Gateway grill).",
2026-06-21T08:16:00.3902732Z       "requiredStages": [
2026-06-21T08:16:00.3902818Z         "impl",
2026-06-21T08:16:00.3902907Z         "unit",
2026-06-21T08:16:00.3902989Z         "int"
2026-06-21T08:16:00.3903079Z       ],
2026-06-21T08:16:00.3903170Z       "stages": {
2026-06-21T08:16:00.3903284Z         "doc": {
2026-06-21T08:16:00.3903385Z           "complete": false,
2026-06-21T08:16:00.3903465Z           "evidence": []
2026-06-21T08:16:00.3903555Z         },
2026-06-21T08:16:00.3903642Z         "impl": {
2026-06-21T08:16:00.3903742Z           "complete": true,
2026-06-21T08:16:00.3903837Z           "evidence": [
2026-06-21T08:16:00.3903923Z             {
2026-06-21T08:16:00.3904052Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.3904137Z               "line": 229
2026-06-21T08:16:00.3904237Z             },
2026-06-21T08:16:00.3904315Z             {
2026-06-21T08:16:00.3904452Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T08:16:00.3904537Z               "line": 36
2026-06-21T08:16:00.3904603Z             },
2026-06-21T08:16:00.3904698Z             {
2026-06-21T08:16:00.3904811Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T08:16:00.3904916Z               "line": 137
2026-06-21T08:16:00.3905032Z             },
2026-06-21T08:16:00.3905126Z             {
2026-06-21T08:16:00.3905255Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T08:16:00.3905350Z               "line": 153
2026-06-21T08:16:00.3905450Z             },
2026-06-21T08:16:00.3905536Z             {
2026-06-21T08:16:00.3905665Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T08:16:00.3905745Z               "line": 165
2026-06-21T08:16:00.3905817Z             },
2026-06-21T08:16:00.3905904Z             {
2026-06-21T08:16:00.3906127Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T08:16:00.3906233Z               "line": 242
2026-06-21T08:16:00.3906418Z             },
2026-06-21T08:16:00.3906505Z             {
2026-06-21T08:16:00.3906628Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T08:16:00.3906719Z               "line": 267
2026-06-21T08:16:00.3906810Z             },
2026-06-21T08:16:00.3906896Z             {
2026-06-21T08:16:00.3907019Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T08:16:00.3907105Z               "line": 293
2026-06-21T08:16:00.3907187Z             },
2026-06-21T08:16:00.3907267Z             {
2026-06-21T08:16:00.3907375Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-21T08:16:00.3907466Z               "line": 51
2026-06-21T08:16:00.3907551Z             },
2026-06-21T08:16:00.3907640Z             {
2026-06-21T08:16:00.3907749Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T08:16:00.3907855Z               "line": 333
2026-06-21T08:16:00.3907941Z             },
2026-06-21T08:16:00.3908031Z             {
2026-06-21T08:16:00.3908156Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T08:16:00.3908246Z               "line": 373
2026-06-21T08:16:00.3908331Z             },
2026-06-21T08:16:00.3908413Z             {
2026-06-21T08:16:00.3908537Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T08:16:00.3908632Z               "line": 602
2026-06-21T08:16:00.3908718Z             },
2026-06-21T08:16:00.3908800Z             {
2026-06-21T08:16:00.3908923Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-21T08:16:00.3909071Z               "line": 132
2026-06-21T08:16:00.3909152Z             },
2026-06-21T08:16:00.3909237Z             {
2026-06-21T08:16:00.3909372Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.3909482Z               "line": 448
2026-06-21T08:16:00.3909585Z             },
2026-06-21T08:16:00.3909667Z             {
2026-06-21T08:16:00.3909787Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T08:16:00.3909881Z               "line": 74
2026-06-21T08:16:00.3909970Z             },
2026-06-21T08:16:00.3910057Z             {
2026-06-21T08:16:00.3910170Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3910259Z               "line": 605
2026-06-21T08:16:00.3910340Z             },
2026-06-21T08:16:00.3910432Z             {
2026-06-21T08:16:00.3910536Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.3910626Z               "line": 396
2026-06-21T08:16:00.3910708Z             },
2026-06-21T08:16:00.3910794Z             {
2026-06-21T08:16:00.3910907Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3910994Z               "line": 6518
2026-06-21T08:16:00.3911080Z             }
2026-06-21T08:16:00.3911166Z           ]
2026-06-21T08:16:00.3911250Z         },
2026-06-21T08:16:00.3911333Z         "int": {
2026-06-21T08:16:00.3911428Z           "complete": true,
2026-06-21T08:16:00.3911523Z           "evidence": [
2026-06-21T08:16:00.3911609Z             {
2026-06-21T08:16:00.3911733Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.3911819Z               "line": 1262
2026-06-21T08:16:00.3911900Z             },
2026-06-21T08:16:00.3911982Z             {
2026-06-21T08:16:00.3912091Z               "path": "crates/spt/tests/drive_e2e.rs",
2026-06-21T08:16:00.3912176Z               "line": 17
2026-06-21T08:16:00.3912258Z             }
2026-06-21T08:16:00.3912344Z           ]
2026-06-21T08:16:00.3912438Z         },
2026-06-21T08:16:00.3912519Z         "unit": {
2026-06-21T08:16:00.3912621Z           "complete": true,
2026-06-21T08:16:00.3912711Z           "evidence": [
2026-06-21T08:16:00.3912800Z             {
2026-06-21T08:16:00.3912919Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T08:16:00.3913015Z               "line": 311
2026-06-21T08:16:00.3913096Z             },
2026-06-21T08:16:00.3913277Z             {
2026-06-21T08:16:00.3913406Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T08:16:00.3913611Z               "line": 325
2026-06-21T08:16:00.3913702Z             },
2026-06-21T08:16:00.3913786Z             {
2026-06-21T08:16:00.3913897Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T08:16:00.3913992Z               "line": 343
2026-06-21T08:16:00.3914078Z             },
2026-06-21T08:16:00.3914159Z             {
2026-06-21T08:16:00.3914269Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T08:16:00.3914354Z               "line": 364
2026-06-21T08:16:00.3914435Z             },
2026-06-21T08:16:00.3914518Z             {
2026-06-21T08:16:00.3914645Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T08:16:00.3914731Z               "line": 376
2026-06-21T08:16:00.3914822Z             },
2026-06-21T08:16:00.3914895Z             {
2026-06-21T08:16:00.3915016Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T08:16:00.3915101Z               "line": 897
2026-06-21T08:16:00.3915188Z             },
2026-06-21T08:16:00.3915277Z             {
2026-06-21T08:16:00.3915386Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T08:16:00.3915472Z               "line": 957
2026-06-21T08:16:00.3915558Z             },
2026-06-21T08:16:00.3915639Z             {
2026-06-21T08:16:00.3915757Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-21T08:16:00.3915854Z               "line": 338
2026-06-21T08:16:00.3915935Z             },
2026-06-21T08:16:00.3916019Z             {
2026-06-21T08:16:00.3916135Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T08:16:00.3916225Z               "line": 769
2026-06-21T08:16:00.3916320Z             },
2026-06-21T08:16:00.3916406Z             {
2026-06-21T08:16:00.3916512Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3916611Z               "line": 8836
2026-06-21T08:16:00.3916697Z             }
2026-06-21T08:16:00.3916788Z           ]
2026-06-21T08:16:00.3916868Z         }
2026-06-21T08:16:00.3916964Z       }
2026-06-21T08:16:00.3917050Z     },
2026-06-21T08:16:00.3917146Z     {
2026-06-21T08:16:00.3917240Z       "id": "REQ-SHELL-4",
2026-06-21T08:16:00.3919097Z       "title": "Shell tunnel (reliable-ordered opaque byte stream): an owner<->shell link may hold a long-lived, reliable-ordered, link-bound QUIC stream pair carrying opaque wire protocol traffic the channel taxonomy must NOT reinterpret (first consumer usbip URB) — manifest opt-in, not enveloped, not MAC-framed, not spooled; the link lifecycle governs it (a link-break closes the tunnel). Reliable-ordered ⇒ congestion surfaces as lag never loss ⇒ acceptable only on-LAN: the on-LAN posture is documented and the tunnel is NOT proven cross-WAN (CONTEXT:262, minted 2026-06-11 Gateway grill; doyle gate C2).",
2026-06-21T08:16:00.3919201Z       "requiredStages": [
2026-06-21T08:16:00.3919288Z         "doc",
2026-06-21T08:16:00.3919379Z         "impl",
2026-06-21T08:16:00.3919483Z         "unit",
2026-06-21T08:16:00.3919564Z         "int"
2026-06-21T08:16:00.3919651Z       ],
2026-06-21T08:16:00.3919750Z       "stages": {
2026-06-21T08:16:00.3919840Z         "doc": {
2026-06-21T08:16:00.3919946Z           "complete": true,
2026-06-21T08:16:00.3920032Z           "evidence": [
2026-06-21T08:16:00.3920117Z             {
2026-06-21T08:16:00.3920212Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.3920310Z               "line": 281
2026-06-21T08:16:00.3920385Z             },
2026-06-21T08:16:00.3920469Z             {
2026-06-21T08:16:00.3920697Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
2026-06-21T08:16:00.3920782Z               "line": 88
2026-06-21T08:16:00.3920871Z             }
2026-06-21T08:16:00.3920954Z           ]
2026-06-21T08:16:00.3921035Z         },
2026-06-21T08:16:00.3921125Z         "impl": {
2026-06-21T08:16:00.3921215Z           "complete": true,
2026-06-21T08:16:00.3921311Z           "evidence": [
2026-06-21T08:16:00.3921530Z             {
2026-06-21T08:16:00.3921659Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.3921854Z               "line": 243
2026-06-21T08:16:00.3921941Z             },
2026-06-21T08:16:00.3922026Z             {
2026-06-21T08:16:00.3922145Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-21T08:16:00.3922246Z               "line": 61
2026-06-21T08:16:00.3922331Z             },
2026-06-21T08:16:00.3922417Z             {
2026-06-21T08:16:00.3922528Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T08:16:00.3922622Z               "line": 218
2026-06-21T08:16:00.3922708Z             },
2026-06-21T08:16:00.3922794Z             {
2026-06-21T08:16:00.3922914Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T08:16:00.3922998Z               "line": 245
2026-06-21T08:16:00.3923084Z             },
2026-06-21T08:16:00.3923172Z             {
2026-06-21T08:16:00.3923294Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.3923393Z               "line": 616
2026-06-21T08:16:00.3923484Z             },
2026-06-21T08:16:00.3923575Z             {
2026-06-21T08:16:00.3923689Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.3923784Z               "line": 1191
2026-06-21T08:16:00.3923871Z             },
2026-06-21T08:16:00.3923952Z             {
2026-06-21T08:16:00.3924070Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.3924147Z               "line": 1203
2026-06-21T08:16:00.3924233Z             },
2026-06-21T08:16:00.3924318Z             {
2026-06-21T08:16:00.3924433Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.3924519Z               "line": 1244
2026-06-21T08:16:00.3924610Z             },
2026-06-21T08:16:00.3924695Z             {
2026-06-21T08:16:00.3924815Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.3924909Z               "line": 456
2026-06-21T08:16:00.3925005Z             },
2026-06-21T08:16:00.3925083Z             {
2026-06-21T08:16:00.3925206Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T08:16:00.3925305Z               "line": 44
2026-06-21T08:16:00.3925392Z             },
2026-06-21T08:16:00.3925469Z             {
2026-06-21T08:16:00.3925595Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T08:16:00.3925680Z               "line": 208
2026-06-21T08:16:00.3925772Z             },
2026-06-21T08:16:00.3925861Z             {
2026-06-21T08:16:00.3925974Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T08:16:00.3926079Z               "line": 227
2026-06-21T08:16:00.3926162Z             },
2026-06-21T08:16:00.3926250Z             {
2026-06-21T08:16:00.3926370Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T08:16:00.3926466Z               "line": 253
2026-06-21T08:16:00.3926542Z             },
2026-06-21T08:16:00.3926627Z             {
2026-06-21T08:16:00.3926757Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T08:16:00.3926843Z               "line": 272
2026-06-21T08:16:00.3926942Z             },
2026-06-21T08:16:00.3927024Z             {
2026-06-21T08:16:00.3927153Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T08:16:00.3927242Z               "line": 392
2026-06-21T08:16:00.3927344Z             },
2026-06-21T08:16:00.3927429Z             {
2026-06-21T08:16:00.3927567Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T08:16:00.3927668Z               "line": 421
2026-06-21T08:16:00.3927748Z             },
2026-06-21T08:16:00.3927839Z             {
2026-06-21T08:16:00.3927954Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T08:16:00.3928049Z               "line": 439
2026-06-21T08:16:00.3928139Z             },
2026-06-21T08:16:00.3928225Z             {
2026-06-21T08:16:00.3928350Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T08:16:00.3928510Z               "line": 458
2026-06-21T08:16:00.3928596Z             },
2026-06-21T08:16:00.3928682Z             {
2026-06-21T08:16:00.3928869Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T08:16:00.3929057Z               "line": 486
2026-06-21T08:16:00.3929132Z             },
2026-06-21T08:16:00.3929218Z             {
2026-06-21T08:16:00.3929338Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3929442Z               "line": 624
2026-06-21T08:16:00.3929528Z             },
2026-06-21T08:16:00.3929610Z             {
2026-06-21T08:16:00.3929728Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3929814Z               "line": 829
2026-06-21T08:16:00.3929896Z             },
2026-06-21T08:16:00.3929981Z             {
2026-06-21T08:16:00.3930105Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.3930192Z               "line": 435
2026-06-21T08:16:00.3930273Z             },
2026-06-21T08:16:00.3930362Z             {
2026-06-21T08:16:00.3930467Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3930555Z               "line": 6574
2026-06-21T08:16:00.3930639Z             }
2026-06-21T08:16:00.3930725Z           ]
2026-06-21T08:16:00.3930802Z         },
2026-06-21T08:16:00.3930889Z         "int": {
2026-06-21T08:16:00.3930987Z           "complete": true,
2026-06-21T08:16:00.3931072Z           "evidence": [
2026-06-21T08:16:00.3931153Z             {
2026-06-21T08:16:00.3931271Z               "path": "crates/spt/tests/tunnel_e2e.rs",
2026-06-21T08:16:00.3931370Z               "line": 18
2026-06-21T08:16:00.3931451Z             }
2026-06-21T08:16:00.3931537Z           ]
2026-06-21T08:16:00.3931619Z         },
2026-06-21T08:16:00.3931704Z         "unit": {
2026-06-21T08:16:00.3931804Z           "complete": true,
2026-06-21T08:16:00.3931895Z           "evidence": [
2026-06-21T08:16:00.3931976Z             {
2026-06-21T08:16:00.3932100Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.3932200Z               "line": 1479
2026-06-21T08:16:00.3932291Z             },
2026-06-21T08:16:00.3932371Z             {
2026-06-21T08:16:00.3932496Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.3932581Z               "line": 1508
2026-06-21T08:16:00.3932667Z             },
2026-06-21T08:16:00.3932748Z             {
2026-06-21T08:16:00.3932863Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T08:16:00.3932963Z               "line": 504
2026-06-21T08:16:00.3933039Z             },
2026-06-21T08:16:00.3933130Z             {
2026-06-21T08:16:00.3933249Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T08:16:00.3933334Z               "line": 514
2026-06-21T08:16:00.3933427Z             },
2026-06-21T08:16:00.3933511Z             {
2026-06-21T08:16:00.3933635Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T08:16:00.3933722Z               "line": 531
2026-06-21T08:16:00.3933807Z             },
2026-06-21T08:16:00.3933897Z             {
2026-06-21T08:16:00.3934020Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T08:16:00.3934107Z               "line": 543
2026-06-21T08:16:00.3934192Z             },
2026-06-21T08:16:00.3937822Z             {
2026-06-21T08:16:00.3937994Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T08:16:00.3938093Z               "line": 555
2026-06-21T08:16:00.3938180Z             },
2026-06-21T08:16:00.3938262Z             {
2026-06-21T08:16:00.3938413Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.3938515Z               "line": 1145
2026-06-21T08:16:00.3938605Z             },
2026-06-21T08:16:00.3938679Z             {
2026-06-21T08:16:00.3938800Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T08:16:00.3938887Z               "line": 776
2026-06-21T08:16:00.3939056Z             }
2026-06-21T08:16:00.3939147Z           ]
2026-06-21T08:16:00.3939232Z         }
2026-06-21T08:16:00.3939312Z       }
2026-06-21T08:16:00.3939593Z     },
2026-06-21T08:16:00.3939678Z     {
2026-06-21T08:16:00.3939763Z       "id": "REQ-SHELL-5",
2026-06-21T08:16:00.3941086Z       "title": "Shell ownership is owner-type-agnostic: any non-Shell endpoint type may own/spawn/drive/command/link a shell (Gateway the named first) — control-exclusivity keys on the owner endpoint_id, NEVER on the owner's endpoint type. No ownership path (mint, launch, owner-from-link, cmd, drive, tunnel, sleep/wake, owner-shutdown) inspects the owner's type (CONTEXT:264, ratified 2026-06-11 Gateway grill).",
2026-06-21T08:16:00.3941190Z       "requiredStages": [
2026-06-21T08:16:00.3941275Z         "doc",
2026-06-21T08:16:00.3941372Z         "impl",
2026-06-21T08:16:00.3941449Z         "unit",
2026-06-21T08:16:00.3941533Z         "int"
2026-06-21T08:16:00.3941618Z       ],
2026-06-21T08:16:00.3941689Z       "stages": {
2026-06-21T08:16:00.3941775Z         "doc": {
2026-06-21T08:16:00.3941864Z           "complete": true,
2026-06-21T08:16:00.3941959Z           "evidence": [
2026-06-21T08:16:00.3942069Z             {
2026-06-21T08:16:00.3942160Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.3942254Z               "line": 284
2026-06-21T08:16:00.3942340Z             }
2026-06-21T08:16:00.3942427Z           ]
2026-06-21T08:16:00.3942498Z         },
2026-06-21T08:16:00.3942583Z         "impl": {
2026-06-21T08:16:00.3942679Z           "complete": true,
2026-06-21T08:16:00.3942755Z           "evidence": [
2026-06-21T08:16:00.3942846Z             {
2026-06-21T08:16:00.3942975Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T08:16:00.3943066Z               "line": 260
2026-06-21T08:16:00.3943141Z             }
2026-06-21T08:16:00.3943222Z           ]
2026-06-21T08:16:00.3943304Z         },
2026-06-21T08:16:00.3943390Z         "int": {
2026-06-21T08:16:00.3943485Z           "complete": true,
2026-06-21T08:16:00.3943571Z           "evidence": [
2026-06-21T08:16:00.3943653Z             {
2026-06-21T08:16:00.3943775Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.3943871Z               "line": 827
2026-06-21T08:16:00.3943948Z             },
2026-06-21T08:16:00.3944034Z             {
2026-06-21T08:16:00.3944157Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.3944239Z               "line": 1290
2026-06-21T08:16:00.3944325Z             },
2026-06-21T08:16:00.3944409Z             {
2026-06-21T08:16:00.3944546Z               "path": "crates/spt/tests/gateway_owner_shell_e2e.rs",
2026-06-21T08:16:00.3944633Z               "line": 23
2026-06-21T08:16:00.3944710Z             }
2026-06-21T08:16:00.3944790Z           ]
2026-06-21T08:16:00.3944871Z         },
2026-06-21T08:16:00.3944958Z         "unit": {
2026-06-21T08:16:00.3945043Z           "complete": true,
2026-06-21T08:16:00.3945133Z           "evidence": [
2026-06-21T08:16:00.3945219Z             {
2026-06-21T08:16:00.3945339Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T08:16:00.3945424Z               "line": 803
2026-06-21T08:16:00.3945510Z             }
2026-06-21T08:16:00.3945592Z           ]
2026-06-21T08:16:00.3945678Z         }
2026-06-21T08:16:00.3945767Z       }
2026-06-21T08:16:00.3945854Z     },
2026-06-21T08:16:00.3945935Z     {
2026-06-21T08:16:00.3946030Z       "id": "REQ-START-1",
2026-06-21T08:16:00.3946222Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-21T08:16:00.3946326Z       "requiredStages": [
2026-06-21T08:16:00.3946407Z         "impl",
2026-06-21T08:16:00.3946498Z         "unit"
2026-06-21T08:16:00.3946584Z       ],
2026-06-21T08:16:00.3946673Z       "stages": {
2026-06-21T08:16:00.3946763Z         "doc": {
2026-06-21T08:16:00.3946854Z           "complete": false,
2026-06-21T08:16:00.3946944Z           "evidence": []
2026-06-21T08:16:00.3947019Z         },
2026-06-21T08:16:00.3947104Z         "impl": {
2026-06-21T08:16:00.3947200Z           "complete": true,
2026-06-21T08:16:00.3947287Z           "evidence": [
2026-06-21T08:16:00.3947366Z             {
2026-06-21T08:16:00.3947568Z               "path": "crates/spt-store/src/seed.rs",
2026-06-21T08:16:00.3947662Z               "line": 16
2026-06-21T08:16:00.3947816Z             }
2026-06-21T08:16:00.3947901Z           ]
2026-06-21T08:16:00.3947981Z         },
2026-06-21T08:16:00.3948067Z         "int": {
2026-06-21T08:16:00.3948163Z           "complete": false,
2026-06-21T08:16:00.3948258Z           "evidence": []
2026-06-21T08:16:00.3948344Z         },
2026-06-21T08:16:00.3948425Z         "unit": {
2026-06-21T08:16:00.3948521Z           "complete": true,
2026-06-21T08:16:00.3948616Z           "evidence": [
2026-06-21T08:16:00.3948692Z             {
2026-06-21T08:16:00.3948807Z               "path": "crates/spt-store/src/seed.rs",
2026-06-21T08:16:00.3948892Z               "line": 48
2026-06-21T08:16:00.3949050Z             },
2026-06-21T08:16:00.3949136Z             {
2026-06-21T08:16:00.3949240Z               "path": "crates/spt-store/src/seed.rs",
2026-06-21T08:16:00.3949326Z               "line": 63
2026-06-21T08:16:00.3949437Z             }
2026-06-21T08:16:00.3949517Z           ]
2026-06-21T08:16:00.3949602Z         }
2026-06-21T08:16:00.3949692Z       }
2026-06-21T08:16:00.3949764Z     },
2026-06-21T08:16:00.3949848Z     {
2026-06-21T08:16:00.3949947Z       "id": "REQ-START-2",
2026-06-21T08:16:00.3950081Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-21T08:16:00.3950163Z       "requiredStages": [
2026-06-21T08:16:00.3950247Z         "impl",
2026-06-21T08:16:00.3950333Z         "unit",
2026-06-21T08:16:00.3950416Z         "int"
2026-06-21T08:16:00.3950492Z       ],
2026-06-21T08:16:00.3950576Z       "stages": {
2026-06-21T08:16:00.3950663Z         "doc": {
2026-06-21T08:16:00.3950759Z           "complete": false,
2026-06-21T08:16:00.3950840Z           "evidence": []
2026-06-21T08:16:00.3950929Z         },
2026-06-21T08:16:00.3951007Z         "impl": {
2026-06-21T08:16:00.3951093Z           "complete": true,
2026-06-21T08:16:00.3951178Z           "evidence": [
2026-06-21T08:16:00.3951264Z             {
2026-06-21T08:16:00.3951379Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3951463Z               "line": 16
2026-06-21T08:16:00.3951554Z             },
2026-06-21T08:16:00.3951632Z             {
2026-06-21T08:16:00.3951746Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3951831Z               "line": 115
2026-06-21T08:16:00.3951912Z             },
2026-06-21T08:16:00.3951999Z             {
2026-06-21T08:16:00.3952102Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3952193Z               "line": 300
2026-06-21T08:16:00.3952264Z             }
2026-06-21T08:16:00.3952355Z           ]
2026-06-21T08:16:00.3952433Z         },
2026-06-21T08:16:00.3952519Z         "int": {
2026-06-21T08:16:00.3952614Z           "complete": true,
2026-06-21T08:16:00.3952701Z           "evidence": [
2026-06-21T08:16:00.3952786Z             {
2026-06-21T08:16:00.3952905Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-21T08:16:00.3953011Z               "line": 186
2026-06-21T08:16:00.3953096Z             }
2026-06-21T08:16:00.3953181Z           ]
2026-06-21T08:16:00.3953264Z         },
2026-06-21T08:16:00.3953349Z         "unit": {
2026-06-21T08:16:00.3953448Z           "complete": true,
2026-06-21T08:16:00.3953535Z           "evidence": [
2026-06-21T08:16:00.3953626Z             {
2026-06-21T08:16:00.3953730Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3953821Z               "line": 590
2026-06-21T08:16:00.3953908Z             },
2026-06-21T08:16:00.3953992Z             {
2026-06-21T08:16:00.3954107Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3954189Z               "line": 623
2026-06-21T08:16:00.3954270Z             }
2026-06-21T08:16:00.3954359Z           ]
2026-06-21T08:16:00.3954436Z         }
2026-06-21T08:16:00.3954523Z       }
2026-06-21T08:16:00.3954603Z     },
2026-06-21T08:16:00.3954688Z     {
2026-06-21T08:16:00.3954779Z       "id": "REQ-START-3",
2026-06-21T08:16:00.3955222Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-21T08:16:00.3955402Z       "requiredStages": [
2026-06-21T08:16:00.3955479Z         "impl",
2026-06-21T08:16:00.3955566Z         "unit",
2026-06-21T08:16:00.3955651Z         "int"
2026-06-21T08:16:00.3955731Z       ],
2026-06-21T08:16:00.3955809Z       "stages": {
2026-06-21T08:16:00.3955889Z         "doc": {
2026-06-21T08:16:00.3955975Z           "complete": false,
2026-06-21T08:16:00.3956085Z           "evidence": []
2026-06-21T08:16:00.3956194Z         },
2026-06-21T08:16:00.3956275Z         "impl": {
2026-06-21T08:16:00.3956375Z           "complete": true,
2026-06-21T08:16:00.3956462Z           "evidence": [
2026-06-21T08:16:00.3956561Z             {
2026-06-21T08:16:00.3956685Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-21T08:16:00.3956820Z               "line": 23
2026-06-21T08:16:00.3956914Z             },
2026-06-21T08:16:00.3956986Z             {
2026-06-21T08:16:00.3957107Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-21T08:16:00.3957200Z               "line": 205
2026-06-21T08:16:00.3957294Z             },
2026-06-21T08:16:00.3957385Z             {
2026-06-21T08:16:00.3957490Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-21T08:16:00.3957584Z               "line": 221
2026-06-21T08:16:00.3957664Z             },
2026-06-21T08:16:00.3957755Z             {
2026-06-21T08:16:00.3957879Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3957978Z               "line": 17
2026-06-21T08:16:00.3958070Z             },
2026-06-21T08:16:00.3958151Z             {
2026-06-21T08:16:00.3958260Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3958346Z               "line": 35
2026-06-21T08:16:00.3958428Z             },
2026-06-21T08:16:00.3958513Z             {
2026-06-21T08:16:00.3958608Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3958700Z               "line": 116
2026-06-21T08:16:00.3958785Z             }
2026-06-21T08:16:00.3958866Z           ]
2026-06-21T08:16:00.3959086Z         },
2026-06-21T08:16:00.3959176Z         "int": {
2026-06-21T08:16:00.3959271Z           "complete": true,
2026-06-21T08:16:00.3959353Z           "evidence": [
2026-06-21T08:16:00.3959443Z             {
2026-06-21T08:16:00.3959543Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-21T08:16:00.3959635Z               "line": 488
2026-06-21T08:16:00.3959716Z             }
2026-06-21T08:16:00.3959796Z           ]
2026-06-21T08:16:00.3959886Z         },
2026-06-21T08:16:00.3959959Z         "unit": {
2026-06-21T08:16:00.3960054Z           "complete": true,
2026-06-21T08:16:00.3960143Z           "evidence": [
2026-06-21T08:16:00.3960224Z             {
2026-06-21T08:16:00.3960328Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-21T08:16:00.3960422Z               "line": 381
2026-06-21T08:16:00.3960507Z             },
2026-06-21T08:16:00.3960594Z             {
2026-06-21T08:16:00.3960708Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-21T08:16:00.3960798Z               "line": 402
2026-06-21T08:16:00.3960884Z             },
2026-06-21T08:16:00.3960961Z             {
2026-06-21T08:16:00.3961080Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-21T08:16:00.3961170Z               "line": 412
2026-06-21T08:16:00.3961252Z             },
2026-06-21T08:16:00.3961333Z             {
2026-06-21T08:16:00.3961442Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3961528Z               "line": 591
2026-06-21T08:16:00.3961610Z             },
2026-06-21T08:16:00.3961690Z             {
2026-06-21T08:16:00.3961804Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3961877Z               "line": 624
2026-06-21T08:16:00.3961958Z             },
2026-06-21T08:16:00.3962042Z             {
2026-06-21T08:16:00.3962153Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3962352Z               "line": 657
2026-06-21T08:16:00.3962429Z             }
2026-06-21T08:16:00.3962521Z           ]
2026-06-21T08:16:00.3962733Z         }
2026-06-21T08:16:00.3962824Z       }
2026-06-21T08:16:00.3962905Z     },
2026-06-21T08:16:00.3962985Z     {
2026-06-21T08:16:00.3963079Z       "id": "REQ-START-4",
2026-06-21T08:16:00.3963223Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-21T08:16:00.3963318Z       "requiredStages": [
2026-06-21T08:16:00.3963403Z         "impl",
2026-06-21T08:16:00.3963485Z         "unit"
2026-06-21T08:16:00.3963566Z       ],
2026-06-21T08:16:00.3963656Z       "stages": {
2026-06-21T08:16:00.3963732Z         "doc": {
2026-06-21T08:16:00.3963824Z           "complete": false,
2026-06-21T08:16:00.3963914Z           "evidence": []
2026-06-21T08:16:00.3963990Z         },
2026-06-21T08:16:00.3964075Z         "impl": {
2026-06-21T08:16:00.3964167Z           "complete": true,
2026-06-21T08:16:00.3964247Z           "evidence": [
2026-06-21T08:16:00.3964332Z             {
2026-06-21T08:16:00.3964458Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.3964557Z               "line": 585
2026-06-21T08:16:00.3964634Z             }
2026-06-21T08:16:00.3964719Z           ]
2026-06-21T08:16:00.3964797Z         },
2026-06-21T08:16:00.3964881Z         "int": {
2026-06-21T08:16:00.3964962Z           "complete": false,
2026-06-21T08:16:00.3965049Z           "evidence": []
2026-06-21T08:16:00.3965131Z         },
2026-06-21T08:16:00.3965215Z         "unit": {
2026-06-21T08:16:00.3965301Z           "complete": true,
2026-06-21T08:16:00.3965379Z           "evidence": [
2026-06-21T08:16:00.3965465Z             {
2026-06-21T08:16:00.3965567Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.3965657Z               "line": 1026
2026-06-21T08:16:00.3965749Z             }
2026-06-21T08:16:00.3965831Z           ]
2026-06-21T08:16:00.3965910Z         }
2026-06-21T08:16:00.3965991Z       }
2026-06-21T08:16:00.3966078Z     },
2026-06-21T08:16:00.3966201Z     {
2026-06-21T08:16:00.3966335Z       "id": "REQ-START-5",
2026-06-21T08:16:00.3969192Z       "title": "Adapter-agnostic harness-hosted seed + bind-time adapter/profile resolution (ADR-0021): `api seed` carries only parent_pid + session_id (+ optional cwd), no --adapter — a pure \"a harness session exists at this pid\" record; --adapter becomes an OPTIONAL override across the whole api group (an explicit name[:profile] for adapter dev, never required). Omitted, listen/poll resolve the owning adapter/profile AT BIND as a pure read against the live registry — never a seed-time snapshot that can drift: seed parent_pid → exe basename → host_binaries candidate set (REQ-MANIFEST-8) → active-profile pointer (REQ-INSTALL-12) primary, else greatest-registered_at_ms candidate base profile (name-asc tie) → friendly zero-match error. Covers BOTH LiveAgent (listen) and ReadyAgent (poll) bringup. Restores legacy parity: `$LIVE start <id>` → `$SPT listen <id>` with no mandatory --adapter, one generic SessionStart hook per harness binary. (v0.9.0)",
2026-06-21T08:16:00.3969341Z       "requiredStages": [
2026-06-21T08:16:00.3969483Z         "doc",
2026-06-21T08:16:00.3969594Z         "impl",
2026-06-21T08:16:00.3969674Z         "unit",
2026-06-21T08:16:00.3969769Z         "int"
2026-06-21T08:16:00.3969846Z       ],
2026-06-21T08:16:00.3969932Z       "stages": {
2026-06-21T08:16:00.3970013Z         "doc": {
2026-06-21T08:16:00.3970113Z           "complete": true,
2026-06-21T08:16:00.3970205Z           "evidence": [
2026-06-21T08:16:00.3970285Z             {
2026-06-21T08:16:00.3970384Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.3970471Z               "line": 176
2026-06-21T08:16:00.3970553Z             },
2026-06-21T08:16:00.3970633Z             {
2026-06-21T08:16:00.3970760Z               "path": "docs-site/src/harness-contract/api.md",
2026-06-21T08:16:00.3970851Z               "line": 28
2026-06-21T08:16:00.3970931Z             }
2026-06-21T08:16:00.3971011Z           ]
2026-06-21T08:16:00.3971201Z         },
2026-06-21T08:16:00.3971293Z         "impl": {
2026-06-21T08:16:00.3971387Z           "complete": true,
2026-06-21T08:16:00.3971579Z           "evidence": [
2026-06-21T08:16:00.3971659Z             {
2026-06-21T08:16:00.3971783Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T08:16:00.3971884Z               "line": 26
2026-06-21T08:16:00.3971965Z             },
2026-06-21T08:16:00.3972049Z             {
2026-06-21T08:16:00.3972165Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T08:16:00.3972241Z               "line": 212
2026-06-21T08:16:00.3972332Z             },
2026-06-21T08:16:00.3972413Z             {
2026-06-21T08:16:00.3972537Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T08:16:00.3972612Z               "line": 221
2026-06-21T08:16:00.3972703Z             },
2026-06-21T08:16:00.3972781Z             {
2026-06-21T08:16:00.3972894Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T08:16:00.3972989Z               "line": 485
2026-06-21T08:16:00.3973077Z             },
2026-06-21T08:16:00.3973162Z             {
2026-06-21T08:16:00.3973274Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3973364Z               "line": 36
2026-06-21T08:16:00.3973451Z             },
2026-06-21T08:16:00.3973531Z             {
2026-06-21T08:16:00.3973648Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3973740Z               "line": 118
2026-06-21T08:16:00.3973821Z             },
2026-06-21T08:16:00.3973906Z             {
2026-06-21T08:16:00.3974016Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T08:16:00.3974108Z               "line": 329
2026-06-21T08:16:00.3974189Z             }
2026-06-21T08:16:00.3974273Z           ]
2026-06-21T08:16:00.3974355Z         },
2026-06-21T08:16:00.3974446Z         "int": {
2026-06-21T08:16:00.3974532Z           "complete": true,
2026-06-21T08:16:00.3974626Z           "evidence": [
2026-06-21T08:16:00.3974708Z             {
2026-06-21T08:16:00.3974841Z               "path": "crates/spt/tests/live_resolve_e2e.rs",
2026-06-21T08:16:00.3974931Z               "line": 17
2026-06-21T08:16:00.3975018Z             }
2026-06-21T08:16:00.3975104Z           ]
2026-06-21T08:16:00.3975185Z         },
2026-06-21T08:16:00.3975275Z         "unit": {
2026-06-21T08:16:00.3975357Z           "complete": true,
2026-06-21T08:16:00.3975451Z           "evidence": [
2026-06-21T08:16:00.3975527Z             {
2026-06-21T08:16:00.3975639Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T08:16:00.3975724Z               "line": 358
2026-06-21T08:16:00.3975803Z             },
2026-06-21T08:16:00.3975885Z             {
2026-06-21T08:16:00.3976006Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T08:16:00.3976095Z               "line": 371
2026-06-21T08:16:00.3976175Z             },
2026-06-21T08:16:00.3976256Z             {
2026-06-21T08:16:00.3976371Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T08:16:00.3976461Z               "line": 597
2026-06-21T08:16:00.3976542Z             }
2026-06-21T08:16:00.3976633Z           ]
2026-06-21T08:16:00.3976714Z         }
2026-06-21T08:16:00.3976799Z       }
2026-06-21T08:16:00.3976885Z     },
2026-06-21T08:16:00.3976972Z     {
2026-06-21T08:16:00.3977081Z       "id": "REQ-STORE-1",
2026-06-21T08:16:00.3977926Z       "title": "spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)",
2026-06-21T08:16:00.3978029Z       "requiredStages": [
2026-06-21T08:16:00.3978096Z         "impl",
2026-06-21T08:16:00.3978183Z         "unit"
2026-06-21T08:16:00.3978269Z       ],
2026-06-21T08:16:00.3978358Z       "stages": {
2026-06-21T08:16:00.3978439Z         "doc": {
2026-06-21T08:16:00.3978529Z           "complete": false,
2026-06-21T08:16:00.3978708Z           "evidence": []
2026-06-21T08:16:00.3978789Z         },
2026-06-21T08:16:00.3978871Z         "impl": {
2026-06-21T08:16:00.3979133Z           "complete": true,
2026-06-21T08:16:00.3979224Z           "evidence": [
2026-06-21T08:16:00.3979305Z             {
2026-06-21T08:16:00.3979432Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.3979525Z               "line": 23
2026-06-21T08:16:00.3979596Z             },
2026-06-21T08:16:00.3979676Z             {
2026-06-21T08:16:00.3979801Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.3979886Z               "line": 46
2026-06-21T08:16:00.3979967Z             },
2026-06-21T08:16:00.3980053Z             {
2026-06-21T08:16:00.3980173Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.3980263Z               "line": 97
2026-06-21T08:16:00.3980349Z             },
2026-06-21T08:16:00.3980435Z             {
2026-06-21T08:16:00.3980558Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.3980654Z               "line": 125
2026-06-21T08:16:00.3980745Z             },
2026-06-21T08:16:00.3980831Z             {
2026-06-21T08:16:00.3980949Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.3981041Z               "line": 207
2026-06-21T08:16:00.3981123Z             },
2026-06-21T08:16:00.3981202Z             {
2026-06-21T08:16:00.3981324Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.3981411Z               "line": 231
2026-06-21T08:16:00.3981496Z             },
2026-06-21T08:16:00.3981580Z             {
2026-06-21T08:16:00.3981699Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.3981791Z               "line": 467
2026-06-21T08:16:00.3981876Z             },
2026-06-21T08:16:00.3981961Z             {
2026-06-21T08:16:00.3982077Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.3982158Z               "line": 25
2026-06-21T08:16:00.3982243Z             },
2026-06-21T08:16:00.3982324Z             {
2026-06-21T08:16:00.3982453Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.3982548Z               "line": 120
2026-06-21T08:16:00.3982644Z             },
2026-06-21T08:16:00.3982725Z             {
2026-06-21T08:16:00.3982844Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.3982939Z               "line": 148
2026-06-21T08:16:00.3983017Z             },
2026-06-21T08:16:00.3983097Z             {
2026-06-21T08:16:00.3983201Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.3983283Z               "line": 165
2026-06-21T08:16:00.3983369Z             },
2026-06-21T08:16:00.3983459Z             {
2026-06-21T08:16:00.3983568Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.3983656Z               "line": 180
2026-06-21T08:16:00.3983741Z             },
2026-06-21T08:16:00.3983816Z             {
2026-06-21T08:16:00.3983944Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.3984035Z               "line": 198
2026-06-21T08:16:00.3984123Z             },
2026-06-21T08:16:00.3984213Z             {
2026-06-21T08:16:00.3984328Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.3984410Z               "line": 207
2026-06-21T08:16:00.3984495Z             },
2026-06-21T08:16:00.3984590Z             {
2026-06-21T08:16:00.3984696Z               "path": "crates/spt-store/src/project.rs",
2026-06-21T08:16:00.3984786Z               "line": 16
2026-06-21T08:16:00.3984876Z             },
2026-06-21T08:16:00.3984953Z             {
2026-06-21T08:16:00.3985072Z               "path": "crates/spt-store/src/project.rs",
2026-06-21T08:16:00.3985157Z               "line": 63
2026-06-21T08:16:00.3985250Z             }
2026-06-21T08:16:00.3985330Z           ]
2026-06-21T08:16:00.3985411Z         },
2026-06-21T08:16:00.3985496Z         "int": {
2026-06-21T08:16:00.3985697Z           "complete": false,
2026-06-21T08:16:00.3985792Z           "evidence": []
2026-06-21T08:16:00.3985874Z         },
2026-06-21T08:16:00.3986054Z         "unit": {
2026-06-21T08:16:00.3986145Z           "complete": true,
2026-06-21T08:16:00.3986237Z           "evidence": [
2026-06-21T08:16:00.3986326Z             {
2026-06-21T08:16:00.3986440Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.3986542Z               "line": 584
2026-06-21T08:16:00.3986627Z             },
2026-06-21T08:16:00.3986711Z             {
2026-06-21T08:16:00.3986830Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.3986922Z               "line": 594
2026-06-21T08:16:00.3987007Z             },
2026-06-21T08:16:00.3987088Z             {
2026-06-21T08:16:00.3987198Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.3987284Z               "line": 616
2026-06-21T08:16:00.3987373Z             },
2026-06-21T08:16:00.3987455Z             {
2026-06-21T08:16:00.3987589Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.3987674Z               "line": 632
2026-06-21T08:16:00.3987760Z             },
2026-06-21T08:16:00.3987847Z             {
2026-06-21T08:16:00.3987961Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T08:16:00.3988046Z               "line": 690
2026-06-21T08:16:00.3988128Z             },
2026-06-21T08:16:00.3988209Z             {
2026-06-21T08:16:00.3988327Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.3988409Z               "line": 472
2026-06-21T08:16:00.3988496Z             },
2026-06-21T08:16:00.3988580Z             {
2026-06-21T08:16:00.3988705Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T08:16:00.3988801Z               "line": 507
2026-06-21T08:16:00.3988881Z             },
2026-06-21T08:16:00.3989027Z             {
2026-06-21T08:16:00.3989142Z               "path": "crates/spt-store/src/project.rs",
2026-06-21T08:16:00.3989240Z               "line": 120
2026-06-21T08:16:00.3989321Z             },
2026-06-21T08:16:00.3989411Z             {
2026-06-21T08:16:00.3989532Z               "path": "crates/spt-store/src/project.rs",
2026-06-21T08:16:00.3989611Z               "line": 128
2026-06-21T08:16:00.3989693Z             }
2026-06-21T08:16:00.3989779Z           ]
2026-06-21T08:16:00.3989861Z         }
2026-06-21T08:16:00.3989945Z       }
2026-06-21T08:16:00.3990027Z     },
2026-06-21T08:16:00.3990113Z     {
2026-06-21T08:16:00.3990199Z       "id": "REQ-SUBNET-1",
2026-06-21T08:16:00.3990518Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-21T08:16:00.3990608Z       "requiredStages": [
2026-06-21T08:16:00.3990690Z         "impl",
2026-06-21T08:16:00.3990775Z         "unit"
2026-06-21T08:16:00.3990856Z       ],
2026-06-21T08:16:00.3990947Z       "stages": {
2026-06-21T08:16:00.3991024Z         "doc": {
2026-06-21T08:16:00.3991128Z           "complete": false,
2026-06-21T08:16:00.3991209Z           "evidence": []
2026-06-21T08:16:00.3991296Z         },
2026-06-21T08:16:00.3991377Z         "impl": {
2026-06-21T08:16:00.3991471Z           "complete": true,
2026-06-21T08:16:00.3991567Z           "evidence": [
2026-06-21T08:16:00.3991649Z             {
2026-06-21T08:16:00.3991781Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.3991861Z               "line": 281
2026-06-21T08:16:00.3991943Z             },
2026-06-21T08:16:00.3992024Z             {
2026-06-21T08:16:00.3992150Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.3992235Z               "line": 651
2026-06-21T08:16:00.3992317Z             },
2026-06-21T08:16:00.3992403Z             {
2026-06-21T08:16:00.3992503Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3992608Z               "line": 3399
2026-06-21T08:16:00.3992689Z             },
2026-06-21T08:16:00.3992774Z             {
2026-06-21T08:16:00.3992990Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3993080Z               "line": 3709
2026-06-21T08:16:00.3993262Z             },
2026-06-21T08:16:00.3993337Z             {
2026-06-21T08:16:00.3993442Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3993523Z               "line": 3728
2026-06-21T08:16:00.3993615Z             },
2026-06-21T08:16:00.3993700Z             {
2026-06-21T08:16:00.3993790Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3993887Z               "line": 3792
2026-06-21T08:16:00.3993967Z             },
2026-06-21T08:16:00.3994052Z             {
2026-06-21T08:16:00.3994148Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3994226Z               "line": 3834
2026-06-21T08:16:00.3994310Z             },
2026-06-21T08:16:00.3994390Z             {
2026-06-21T08:16:00.3994499Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3994576Z               "line": 4023
2026-06-21T08:16:00.3994669Z             },
2026-06-21T08:16:00.3994759Z             {
2026-06-21T08:16:00.3994855Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3994961Z               "line": 4093
2026-06-21T08:16:00.3995041Z             },
2026-06-21T08:16:00.3995127Z             {
2026-06-21T08:16:00.3995232Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3995318Z               "line": 4317
2026-06-21T08:16:00.3995398Z             },
2026-06-21T08:16:00.3995470Z             {
2026-06-21T08:16:00.3995566Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3995647Z               "line": 4961
2026-06-21T08:16:00.3995727Z             },
2026-06-21T08:16:00.3995800Z             {
2026-06-21T08:16:00.3995904Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T08:16:00.3995995Z               "line": 418
2026-06-21T08:16:00.3996076Z             }
2026-06-21T08:16:00.3996167Z           ]
2026-06-21T08:16:00.3996247Z         },
2026-06-21T08:16:00.3996338Z         "int": {
2026-06-21T08:16:00.3996434Z           "complete": false,
2026-06-21T08:16:00.3996529Z           "evidence": []
2026-06-21T08:16:00.3996629Z         },
2026-06-21T08:16:00.3996710Z         "unit": {
2026-06-21T08:16:00.3996806Z           "complete": true,
2026-06-21T08:16:00.3996900Z           "evidence": [
2026-06-21T08:16:00.3996991Z             {
2026-06-21T08:16:00.3997121Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.3997215Z               "line": 1584
2026-06-21T08:16:00.3997305Z             },
2026-06-21T08:16:00.3997386Z             {
2026-06-21T08:16:00.3997487Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3997577Z               "line": 9964
2026-06-21T08:16:00.3997657Z             },
2026-06-21T08:16:00.3997735Z             {
2026-06-21T08:16:00.3997839Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3997948Z               "line": 10134
2026-06-21T08:16:00.3998020Z             },
2026-06-21T08:16:00.3998116Z             {
2026-06-21T08:16:00.3998211Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3998301Z               "line": 10141
2026-06-21T08:16:00.3998388Z             },
2026-06-21T08:16:00.3998473Z             {
2026-06-21T08:16:00.3998578Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3998659Z               "line": 10194
2026-06-21T08:16:00.3998746Z             },
2026-06-21T08:16:00.3998825Z             {
2026-06-21T08:16:00.3998926Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3999108Z               "line": 10211
2026-06-21T08:16:00.3999198Z             },
2026-06-21T08:16:00.3999279Z             {
2026-06-21T08:16:00.3999376Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3999465Z               "line": 10241
2026-06-21T08:16:00.3999535Z             },
2026-06-21T08:16:00.3999626Z             {
2026-06-21T08:16:00.3999721Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.3999814Z               "line": 10357
2026-06-21T08:16:00.4000039Z             },
2026-06-21T08:16:00.4000120Z             {
2026-06-21T08:16:00.4000224Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4000406Z               "line": 10508
2026-06-21T08:16:00.4000486Z             }
2026-06-21T08:16:00.4000572Z           ]
2026-06-21T08:16:00.4000655Z         }
2026-06-21T08:16:00.4000745Z       }
2026-06-21T08:16:00.4000825Z     },
2026-06-21T08:16:00.4000902Z     {
2026-06-21T08:16:00.4000988Z       "id": "REQ-SUBNET-2",
2026-06-21T08:16:00.4001206Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-21T08:16:00.4001298Z       "requiredStages": [
2026-06-21T08:16:00.4001393Z         "impl",
2026-06-21T08:16:00.4001478Z         "unit",
2026-06-21T08:16:00.4001560Z         "int"
2026-06-21T08:16:00.4001641Z       ],
2026-06-21T08:16:00.4001721Z       "stages": {
2026-06-21T08:16:00.4001802Z         "doc": {
2026-06-21T08:16:00.4001885Z           "complete": true,
2026-06-21T08:16:00.4001984Z           "evidence": [
2026-06-21T08:16:00.4002070Z             {
2026-06-21T08:16:00.4002228Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-21T08:16:00.4002322Z               "line": 60
2026-06-21T08:16:00.4002403Z             }
2026-06-21T08:16:00.4002483Z           ]
2026-06-21T08:16:00.4002555Z         },
2026-06-21T08:16:00.4002663Z         "impl": {
2026-06-21T08:16:00.4002758Z           "complete": true,
2026-06-21T08:16:00.4002839Z           "evidence": [
2026-06-21T08:16:00.4002930Z             {
2026-06-21T08:16:00.4003048Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.4003144Z               "line": 886
2026-06-21T08:16:00.4003226Z             },
2026-06-21T08:16:00.4003311Z             {
2026-06-21T08:16:00.4003425Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.4003512Z               "line": 2082
2026-06-21T08:16:00.4003597Z             },
2026-06-21T08:16:00.4003677Z             {
2026-06-21T08:16:00.4003807Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.4003893Z               "line": 683
2026-06-21T08:16:00.4003978Z             },
2026-06-21T08:16:00.4004069Z             {
2026-06-21T08:16:00.4004180Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T08:16:00.4004269Z               "line": 867
2026-06-21T08:16:00.4004350Z             },
2026-06-21T08:16:00.4004437Z             {
2026-06-21T08:16:00.4004551Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T08:16:00.4007808Z               "line": 26
2026-06-21T08:16:00.4007912Z             },
2026-06-21T08:16:00.4007999Z             {
2026-06-21T08:16:00.4008132Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T08:16:00.4008222Z               "line": 60
2026-06-21T08:16:00.4008304Z             },
2026-06-21T08:16:00.4008390Z             {
2026-06-21T08:16:00.4008522Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T08:16:00.4008633Z               "line": 168
2026-06-21T08:16:00.4008719Z             },
2026-06-21T08:16:00.4008799Z             {
2026-06-21T08:16:00.4008929Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T08:16:00.4009114Z               "line": 295
2026-06-21T08:16:00.4009195Z             },
2026-06-21T08:16:00.4009277Z             {
2026-06-21T08:16:00.4009395Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T08:16:00.4009476Z               "line": 417
2026-06-21T08:16:00.4009559Z             },
2026-06-21T08:16:00.4009639Z             {
2026-06-21T08:16:00.4009777Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T08:16:00.4009863Z               "line": 252
2026-06-21T08:16:00.4009945Z             },
2026-06-21T08:16:00.4010030Z             {
2026-06-21T08:16:00.4010138Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4010224Z               "line": 3755
2026-06-21T08:16:00.4010305Z             },
2026-06-21T08:16:00.4010537Z             {
2026-06-21T08:16:00.4010648Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4010731Z               "line": 4256
2026-06-21T08:16:00.4010919Z             },
2026-06-21T08:16:00.4010990Z             {
2026-06-21T08:16:00.4011094Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4011181Z               "line": 4892
2026-06-21T08:16:00.4011266Z             }
2026-06-21T08:16:00.4011342Z           ]
2026-06-21T08:16:00.4011418Z         },
2026-06-21T08:16:00.4011500Z         "int": {
2026-06-21T08:16:00.4011586Z           "complete": true,
2026-06-21T08:16:00.4011676Z           "evidence": [
2026-06-21T08:16:00.4011753Z             {
2026-06-21T08:16:00.4011877Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-21T08:16:00.4011968Z               "line": 22
2026-06-21T08:16:00.4012038Z             },
2026-06-21T08:16:00.4012125Z             {
2026-06-21T08:16:00.4012244Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.4012329Z               "line": 645
2026-06-21T08:16:00.4012406Z             },
2026-06-21T08:16:00.4012488Z             {
2026-06-21T08:16:00.4012620Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.4012716Z               "line": 887
2026-06-21T08:16:00.4012798Z             }
2026-06-21T08:16:00.4012878Z           ]
2026-06-21T08:16:00.4012958Z         },
2026-06-21T08:16:00.4013043Z         "unit": {
2026-06-21T08:16:00.4013139Z           "complete": true,
2026-06-21T08:16:00.4013228Z           "evidence": [
2026-06-21T08:16:00.4013303Z             {
2026-06-21T08:16:00.4013418Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T08:16:00.4013500Z               "line": 586
2026-06-21T08:16:00.4013585Z             },
2026-06-21T08:16:00.4013666Z             {
2026-06-21T08:16:00.4013767Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4013853Z               "line": 10004
2026-06-21T08:16:00.4013932Z             },
2026-06-21T08:16:00.4014014Z             {
2026-06-21T08:16:00.4014106Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4014205Z               "line": 10715
2026-06-21T08:16:00.4014285Z             }
2026-06-21T08:16:00.4014367Z           ]
2026-06-21T08:16:00.4014448Z         }
2026-06-21T08:16:00.4014529Z       }
2026-06-21T08:16:00.4014605Z     },
2026-06-21T08:16:00.4014687Z     {
2026-06-21T08:16:00.4014773Z       "id": "REQ-SUBNET-3",
2026-06-21T08:16:00.4015036Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-21T08:16:00.4015134Z       "requiredStages": [
2026-06-21T08:16:00.4015220Z         "impl",
2026-06-21T08:16:00.4015298Z         "unit"
2026-06-21T08:16:00.4015384Z       ],
2026-06-21T08:16:00.4015463Z       "stages": {
2026-06-21T08:16:00.4015544Z         "doc": {
2026-06-21T08:16:00.4015634Z           "complete": false,
2026-06-21T08:16:00.4015724Z           "evidence": []
2026-06-21T08:16:00.4015813Z         },
2026-06-21T08:16:00.4015898Z         "impl": {
2026-06-21T08:16:00.4015995Z           "complete": true,
2026-06-21T08:16:00.4016072Z           "evidence": [
2026-06-21T08:16:00.4016170Z             {
2026-06-21T08:16:00.4016300Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.4016390Z               "line": 152
2026-06-21T08:16:00.4016480Z             },
2026-06-21T08:16:00.4016561Z             {
2026-06-21T08:16:00.4016686Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.4016767Z               "line": 299
2026-06-21T08:16:00.4016857Z             },
2026-06-21T08:16:00.4016925Z             {
2026-06-21T08:16:00.4017053Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.4017138Z               "line": 443
2026-06-21T08:16:00.4017215Z             },
2026-06-21T08:16:00.4017302Z             {
2026-06-21T08:16:00.4017410Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.4017505Z               "line": 532
2026-06-21T08:16:00.4017672Z             },
2026-06-21T08:16:00.4017754Z             {
2026-06-21T08:16:00.4017964Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.4018044Z               "line": 125
2026-06-21T08:16:00.4018126Z             },
2026-06-21T08:16:00.4018208Z             {
2026-06-21T08:16:00.4018330Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.4018420Z               "line": 253
2026-06-21T08:16:00.4018501Z             },
2026-06-21T08:16:00.4018583Z             {
2026-06-21T08:16:00.4018687Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.4018777Z               "line": 264
2026-06-21T08:16:00.4018855Z             },
2026-06-21T08:16:00.4019021Z             {
2026-06-21T08:16:00.4019136Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.4019222Z               "line": 285
2026-06-21T08:16:00.4019303Z             },
2026-06-21T08:16:00.4019383Z             {
2026-06-21T08:16:00.4019509Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.4019589Z               "line": 621
2026-06-21T08:16:00.4019679Z             },
2026-06-21T08:16:00.4019765Z             {
2026-06-21T08:16:00.4019870Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.4019956Z               "line": 680
2026-06-21T08:16:00.4020037Z             },
2026-06-21T08:16:00.4020124Z             {
2026-06-21T08:16:00.4020247Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-21T08:16:00.4020337Z               "line": 61
2026-06-21T08:16:00.4020414Z             },
2026-06-21T08:16:00.4020491Z             {
2026-06-21T08:16:00.4020613Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-21T08:16:00.4020689Z               "line": 90
2026-06-21T08:16:00.4020775Z             },
2026-06-21T08:16:00.4020860Z             {
2026-06-21T08:16:00.4020972Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-21T08:16:00.4021068Z               "line": 125
2026-06-21T08:16:00.4021145Z             },
2026-06-21T08:16:00.4021230Z             {
2026-06-21T08:16:00.4021349Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-21T08:16:00.4021440Z               "line": 9
2026-06-21T08:16:00.4021526Z             },
2026-06-21T08:16:00.4021607Z             {
2026-06-21T08:16:00.4021712Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4021799Z               "line": 4093
2026-06-21T08:16:00.4021884Z             },
2026-06-21T08:16:00.4021964Z             {
2026-06-21T08:16:00.4022070Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T08:16:00.4022170Z               "line": 445
2026-06-21T08:16:00.4022246Z             }
2026-06-21T08:16:00.4022336Z           ]
2026-06-21T08:16:00.4022423Z         },
2026-06-21T08:16:00.4022508Z         "int": {
2026-06-21T08:16:00.4022603Z           "complete": false,
2026-06-21T08:16:00.4022714Z           "evidence": []
2026-06-21T08:16:00.4022804Z         },
2026-06-21T08:16:00.4022880Z         "unit": {
2026-06-21T08:16:00.4022976Z           "complete": true,
2026-06-21T08:16:00.4023062Z           "evidence": [
2026-06-21T08:16:00.4023151Z             {
2026-06-21T08:16:00.4023272Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.4023358Z               "line": 1356
2026-06-21T08:16:00.4023443Z             },
2026-06-21T08:16:00.4023523Z             {
2026-06-21T08:16:00.4023637Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.4023723Z               "line": 1713
2026-06-21T08:16:00.4023811Z             },
2026-06-21T08:16:00.4023892Z             {
2026-06-21T08:16:00.4024017Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T08:16:00.4024103Z               "line": 892
2026-06-21T08:16:00.4024183Z             },
2026-06-21T08:16:00.4024254Z             {
2026-06-21T08:16:00.4024370Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.4024579Z               "line": 991
2026-06-21T08:16:00.4024661Z             },
2026-06-21T08:16:00.4024742Z             {
2026-06-21T08:16:00.4024956Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.4025037Z               "line": 1041
2026-06-21T08:16:00.4025122Z             },
2026-06-21T08:16:00.4025194Z             {
2026-06-21T08:16:00.4025300Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.4025380Z               "line": 1100
2026-06-21T08:16:00.4025456Z             },
2026-06-21T08:16:00.4025543Z             {
2026-06-21T08:16:00.4025648Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-21T08:16:00.4025732Z               "line": 234
2026-06-21T08:16:00.4025814Z             },
2026-06-21T08:16:00.4025896Z             {
2026-06-21T08:16:00.4026009Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-21T08:16:00.4026094Z               "line": 49
2026-06-21T08:16:00.4026199Z             },
2026-06-21T08:16:00.4026280Z             {
2026-06-21T08:16:00.4026378Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4026468Z               "line": 10357
2026-06-21T08:16:00.4026555Z             },
2026-06-21T08:16:00.4026637Z             {
2026-06-21T08:16:00.4026730Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4026821Z               "line": 10463
2026-06-21T08:16:00.4026903Z             },
2026-06-21T08:16:00.4026989Z             {
2026-06-21T08:16:00.4027088Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4027180Z               "line": 10681
2026-06-21T08:16:00.4027260Z             }
2026-06-21T08:16:00.4027346Z           ]
2026-06-21T08:16:00.4027431Z         }
2026-06-21T08:16:00.4027509Z       }
2026-06-21T08:16:00.4027594Z     },
2026-06-21T08:16:00.4027675Z     {
2026-06-21T08:16:00.4027770Z       "id": "REQ-SUBNET-4",
2026-06-21T08:16:00.4028057Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-21T08:16:00.4028158Z       "requiredStages": [
2026-06-21T08:16:00.4028242Z         "impl",
2026-06-21T08:16:00.4028333Z         "unit"
2026-06-21T08:16:00.4028415Z       ],
2026-06-21T08:16:00.4028497Z       "stages": {
2026-06-21T08:16:00.4028580Z         "doc": {
2026-06-21T08:16:00.4028662Z           "complete": true,
2026-06-21T08:16:00.4028749Z           "evidence": [
2026-06-21T08:16:00.4028835Z             {
2026-06-21T08:16:00.4029062Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-21T08:16:00.4029153Z               "line": 60
2026-06-21T08:16:00.4029233Z             }
2026-06-21T08:16:00.4029319Z           ]
2026-06-21T08:16:00.4029395Z         },
2026-06-21T08:16:00.4029487Z         "impl": {
2026-06-21T08:16:00.4029581Z           "complete": true,
2026-06-21T08:16:00.4029661Z           "evidence": [
2026-06-21T08:16:00.4029745Z             {
2026-06-21T08:16:00.4029849Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4029934Z               "line": 3399
2026-06-21T08:16:00.4030030Z             },
2026-06-21T08:16:00.4030111Z             {
2026-06-21T08:16:00.4030220Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4030305Z               "line": 4859
2026-06-21T08:16:00.4030393Z             },
2026-06-21T08:16:00.4030473Z             {
2026-06-21T08:16:00.4030587Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4030679Z               "line": 4892
2026-06-21T08:16:00.4030764Z             }
2026-06-21T08:16:00.4030854Z           ]
2026-06-21T08:16:00.4030931Z         },
2026-06-21T08:16:00.4031018Z         "int": {
2026-06-21T08:16:00.4031103Z           "complete": false,
2026-06-21T08:16:00.4031201Z           "evidence": []
2026-06-21T08:16:00.4031287Z         },
2026-06-21T08:16:00.4031377Z         "unit": {
2026-06-21T08:16:00.4031476Z           "complete": true,
2026-06-21T08:16:00.4031556Z           "evidence": [
2026-06-21T08:16:00.4031638Z             {
2026-06-21T08:16:00.4031734Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4031938Z               "line": 10120
2026-06-21T08:16:00.4032020Z             },
2026-06-21T08:16:00.4032190Z             {
2026-06-21T08:16:00.4032292Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4032377Z               "line": 10194
2026-06-21T08:16:00.4032462Z             }
2026-06-21T08:16:00.4032543Z           ]
2026-06-21T08:16:00.4032626Z         }
2026-06-21T08:16:00.4032721Z       }
2026-06-21T08:16:00.4032811Z     },
2026-06-21T08:16:00.4032892Z     {
2026-06-21T08:16:00.4032973Z       "id": "REQ-SUBNET-5",
2026-06-21T08:16:00.4034125Z       "title": "Per-subnet serve-state: spt subnet detach <NAME> [--save] / attach <NAME> [--save] — daemon keeps running, stops/starts advertising + connecting for that subnet (peer pump + responder selective); --save persists the startup default in daemon config; the all-attached banner gains per-subnet states (M8 decision 6, --save renamed from --auto per decision 25 session)",
2026-06-21T08:16:00.4034240Z       "requiredStages": [
2026-06-21T08:16:00.4034325Z         "impl",
2026-06-21T08:16:00.4034409Z         "unit",
2026-06-21T08:16:00.4034495Z         "int"
2026-06-21T08:16:00.4034582Z       ],
2026-06-21T08:16:00.4034658Z       "stages": {
2026-06-21T08:16:00.4034743Z         "doc": {
2026-06-21T08:16:00.4034829Z           "complete": false,
2026-06-21T08:16:00.4034925Z           "evidence": []
2026-06-21T08:16:00.4035006Z         },
2026-06-21T08:16:00.4035086Z         "impl": {
2026-06-21T08:16:00.4035173Z           "complete": true,
2026-06-21T08:16:00.4035254Z           "evidence": [
2026-06-21T08:16:00.4035340Z             {
2026-06-21T08:16:00.4035463Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T08:16:00.4035550Z               "line": 128
2026-06-21T08:16:00.4035635Z             },
2026-06-21T08:16:00.4035720Z             {
2026-06-21T08:16:00.4035846Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T08:16:00.4035931Z               "line": 413
2026-06-21T08:16:00.4036025Z             },
2026-06-21T08:16:00.4036113Z             {
2026-06-21T08:16:00.4036232Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T08:16:00.4036331Z               "line": 74
2026-06-21T08:16:00.4036413Z             },
2026-06-21T08:16:00.4036499Z             {
2026-06-21T08:16:00.4036607Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.4036692Z               "line": 332
2026-06-21T08:16:00.4036774Z             },
2026-06-21T08:16:00.4036854Z             {
2026-06-21T08:16:00.4036971Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.4037057Z               "line": 621
2026-06-21T08:16:00.4037139Z             },
2026-06-21T08:16:00.4037220Z             {
2026-06-21T08:16:00.4037348Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-21T08:16:00.4037435Z               "line": 31
2026-06-21T08:16:00.4037515Z             },
2026-06-21T08:16:00.4037600Z             {
2026-06-21T08:16:00.4037725Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-21T08:16:00.4037820Z               "line": 50
2026-06-21T08:16:00.4037901Z             },
2026-06-21T08:16:00.4037987Z             {
2026-06-21T08:16:00.4038107Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-21T08:16:00.4038192Z               "line": 69
2026-06-21T08:16:00.4038273Z             },
2026-06-21T08:16:00.4038350Z             {
2026-06-21T08:16:00.4038473Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-21T08:16:00.4038554Z               "line": 113
2026-06-21T08:16:00.4038640Z             },
2026-06-21T08:16:00.4038713Z             {
2026-06-21T08:16:00.4038835Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-21T08:16:00.4038931Z               "line": 25
2026-06-21T08:16:00.4039103Z             },
2026-06-21T08:16:00.4039189Z             {
2026-06-21T08:16:00.4039305Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-21T08:16:00.4039531Z               "line": 34
2026-06-21T08:16:00.4039607Z             },
2026-06-21T08:16:00.4039689Z             {
2026-06-21T08:16:00.4039907Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-21T08:16:00.4039989Z               "line": 17
2026-06-21T08:16:00.4040085Z             },
2026-06-21T08:16:00.4040170Z             {
2026-06-21T08:16:00.4040280Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4040370Z               "line": 4817
2026-06-21T08:16:00.4040447Z             },
2026-06-21T08:16:00.4040532Z             {
2026-06-21T08:16:00.4040629Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T08:16:00.4040723Z               "line": 419
2026-06-21T08:16:00.4040808Z             }
2026-06-21T08:16:00.4040885Z           ]
2026-06-21T08:16:00.4040968Z         },
2026-06-21T08:16:00.4041052Z         "int": {
2026-06-21T08:16:00.4041147Z           "complete": true,
2026-06-21T08:16:00.4041229Z           "evidence": [
2026-06-21T08:16:00.4041310Z             {
2026-06-21T08:16:00.4041438Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T08:16:00.4041529Z               "line": 821
2026-06-21T08:16:00.4041621Z             }
2026-06-21T08:16:00.4041700Z           ]
2026-06-21T08:16:00.4041776Z         },
2026-06-21T08:16:00.4041857Z         "unit": {
2026-06-21T08:16:00.4041957Z           "complete": true,
2026-06-21T08:16:00.4042036Z           "evidence": [
2026-06-21T08:16:00.4042116Z             {
2026-06-21T08:16:00.4042241Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-21T08:16:00.4042318Z               "line": 341
2026-06-21T08:16:00.4042398Z             },
2026-06-21T08:16:00.4042469Z             {
2026-06-21T08:16:00.4042585Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T08:16:00.4042679Z               "line": 1115
2026-06-21T08:16:00.4042765Z             },
2026-06-21T08:16:00.4042847Z             {
2026-06-21T08:16:00.4042961Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-21T08:16:00.4043066Z               "line": 151
2026-06-21T08:16:00.4043147Z             },
2026-06-21T08:16:00.4043233Z             {
2026-06-21T08:16:00.4043361Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-21T08:16:00.4043438Z               "line": 61
2026-06-21T08:16:00.4043520Z             },
2026-06-21T08:16:00.4043595Z             {
2026-06-21T08:16:00.4043719Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-21T08:16:00.4043806Z               "line": 111
2026-06-21T08:16:00.4043886Z             },
2026-06-21T08:16:00.4043967Z             {
2026-06-21T08:16:00.4044082Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-21T08:16:00.4044177Z               "line": 138
2026-06-21T08:16:00.4044248Z             },
2026-06-21T08:16:00.4044339Z             {
2026-06-21T08:16:00.4044455Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-21T08:16:00.4044549Z               "line": 148
2026-06-21T08:16:00.4044634Z             },
2026-06-21T08:16:00.4044719Z             {
2026-06-21T08:16:00.4044829Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4044917Z               "line": 10021
2026-06-21T08:16:00.4045002Z             }
2026-06-21T08:16:00.4045084Z           ]
2026-06-21T08:16:00.4045166Z         }
2026-06-21T08:16:00.4045251Z       }
2026-06-21T08:16:00.4045331Z     },
2026-06-21T08:16:00.4045419Z     {
2026-06-21T08:16:00.4045514Z       "id": "REQ-SUBNET-6",
2026-06-21T08:16:00.4046190Z       "title": "Trust lifecycle verbs, elevation-gated: spt subnet leave <NAME> (membership exit) and spt subnet prune <node> (removes a dead identity's trust + registry rows, killing its dead dials; trust mutation = security surface, REQ-PAIR-6 gate machinery) (M8 decisions 6-7)",
2026-06-21T08:16:00.4046290Z       "requiredStages": [
2026-06-21T08:16:00.4046373Z         "impl",
2026-06-21T08:16:00.4046463Z         "unit"
2026-06-21T08:16:00.4046533Z       ],
2026-06-21T08:16:00.4046624Z       "stages": {
2026-06-21T08:16:00.4046792Z         "doc": {
2026-06-21T08:16:00.4046887Z           "complete": false,
2026-06-21T08:16:00.4046978Z           "evidence": []
2026-06-21T08:16:00.4047139Z         },
2026-06-21T08:16:00.4047229Z         "impl": {
2026-06-21T08:16:00.4047324Z           "complete": true,
2026-06-21T08:16:00.4047419Z           "evidence": [
2026-06-21T08:16:00.4047503Z             {
2026-06-21T08:16:00.4047622Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.4047718Z               "line": 254
2026-06-21T08:16:00.4047795Z             },
2026-06-21T08:16:00.4047879Z             {
2026-06-21T08:16:00.4047980Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4048075Z               "line": 4475
2026-06-21T08:16:00.4048161Z             },
2026-06-21T08:16:00.4048246Z             {
2026-06-21T08:16:00.4048357Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4048447Z               "line": 4492
2026-06-21T08:16:00.4048533Z             },
2026-06-21T08:16:00.4048619Z             {
2026-06-21T08:16:00.4048724Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4048814Z               "line": 4545
2026-06-21T08:16:00.4048900Z             },
2026-06-21T08:16:00.4049082Z             {
2026-06-21T08:16:00.4049172Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4049259Z               "line": 4568
2026-06-21T08:16:00.4049339Z             }
2026-06-21T08:16:00.4049425Z           ]
2026-06-21T08:16:00.4049506Z         },
2026-06-21T08:16:00.4049598Z         "int": {
2026-06-21T08:16:00.4049696Z           "complete": false,
2026-06-21T08:16:00.4049773Z           "evidence": []
2026-06-21T08:16:00.4049855Z         },
2026-06-21T08:16:00.4049936Z         "unit": {
2026-06-21T08:16:00.4050034Z           "complete": true,
2026-06-21T08:16:00.4050110Z           "evidence": [
2026-06-21T08:16:00.4050191Z             {
2026-06-21T08:16:00.4050292Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4050382Z               "line": 10035
2026-06-21T08:16:00.4050472Z             },
2026-06-21T08:16:00.4050544Z             {
2026-06-21T08:16:00.4050645Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4050734Z               "line": 10068
2026-06-21T08:16:00.4050821Z             },
2026-06-21T08:16:00.4050903Z             {
2026-06-21T08:16:00.4050993Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4051073Z               "line": 10077
2026-06-21T08:16:00.4051155Z             }
2026-06-21T08:16:00.4051241Z           ]
2026-06-21T08:16:00.4051317Z         }
2026-06-21T08:16:00.4051397Z       }
2026-06-21T08:16:00.4051484Z     },
2026-06-21T08:16:00.4051565Z     {
2026-06-21T08:16:00.4051646Z       "id": "REQ-SUBNET-7",
2026-06-21T08:16:00.4053259Z       "title": "Per-machine re-pair trust overwrite: registry rows carry a hashed stable machine identifier (OS machine id /etc/machine-id|MachineGuid, domain-separated SHA-256 before gossip, spt-minted persisted UUID fallback; additive serde-default field — old rows parse clean); a COMPLETED pairing ceremony presenting the same node label AND machine id as an existing trusted row evicts the superseded identity's trust + registry rows on the seed-holder and replicates the eviction; a gossiped claim alone never evicts trust (M8 decisions 13, 22)",
2026-06-21T08:16:00.4053373Z       "requiredStages": [
2026-06-21T08:16:00.4053460Z         "impl",
2026-06-21T08:16:00.4053545Z         "unit"
2026-06-21T08:16:00.4053626Z       ],
2026-06-21T08:16:00.4053703Z       "stages": {
2026-06-21T08:16:00.4053788Z         "doc": {
2026-06-21T08:16:00.4053883Z           "complete": false,
2026-06-21T08:16:00.4053969Z           "evidence": []
2026-06-21T08:16:00.4054046Z         },
2026-06-21T08:16:00.4054131Z         "impl": {
2026-06-21T08:16:00.4054217Z           "complete": true,
2026-06-21T08:16:00.4054298Z           "evidence": [
2026-06-21T08:16:00.4054385Z             {
2026-06-21T08:16:00.4054508Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-21T08:16:00.4054719Z               "line": 17
2026-06-21T08:16:00.4054808Z             },
2026-06-21T08:16:00.4054890Z             {
2026-06-21T08:16:00.4055109Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T08:16:00.4055194Z               "line": 103
2026-06-21T08:16:00.4055279Z             },
2026-06-21T08:16:00.4055365Z             {
2026-06-21T08:16:00.4055487Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T08:16:00.4055582Z               "line": 312
2026-06-21T08:16:00.4055659Z             },
2026-06-21T08:16:00.4055745Z             {
2026-06-21T08:16:00.4055868Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-21T08:16:00.4055964Z               "line": 131
2026-06-21T08:16:00.4056055Z             },
2026-06-21T08:16:00.4056135Z             {
2026-06-21T08:16:00.4056269Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.4056355Z               "line": 160
2026-06-21T08:16:00.4056446Z             },
2026-06-21T08:16:00.4056535Z             {
2026-06-21T08:16:00.4056665Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.4056803Z               "line": 447
2026-06-21T08:16:00.4056889Z             },
2026-06-21T08:16:00.4056980Z             {
2026-06-21T08:16:00.4057098Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.4057189Z               "line": 670
2026-06-21T08:16:00.4057271Z             },
2026-06-21T08:16:00.4057356Z             {
2026-06-21T08:16:00.4057480Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.4057562Z               "line": 710
2026-06-21T08:16:00.4057643Z             },
2026-06-21T08:16:00.4057723Z             {
2026-06-21T08:16:00.4057846Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.4057932Z               "line": 766
2026-06-21T08:16:00.4058016Z             },
2026-06-21T08:16:00.4058101Z             {
2026-06-21T08:16:00.4058216Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T08:16:00.4058317Z               "line": 136
2026-06-21T08:16:00.4058397Z             },
2026-06-21T08:16:00.4058487Z             {
2026-06-21T08:16:00.4058603Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.4058688Z               "line": 139
2026-06-21T08:16:00.4058773Z             }
2026-06-21T08:16:00.4058856Z           ]
2026-06-21T08:16:00.4059031Z         },
2026-06-21T08:16:00.4059122Z         "int": {
2026-06-21T08:16:00.4059218Z           "complete": false,
2026-06-21T08:16:00.4059307Z           "evidence": []
2026-06-21T08:16:00.4059393Z         },
2026-06-21T08:16:00.4059485Z         "unit": {
2026-06-21T08:16:00.4059575Z           "complete": true,
2026-06-21T08:16:00.4059661Z           "evidence": [
2026-06-21T08:16:00.4059742Z             {
2026-06-21T08:16:00.4059867Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-21T08:16:00.4059946Z               "line": 136
2026-06-21T08:16:00.4060032Z             },
2026-06-21T08:16:00.4060129Z             {
2026-06-21T08:16:00.4060238Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-21T08:16:00.4060333Z               "line": 156
2026-06-21T08:16:00.4060410Z             },
2026-06-21T08:16:00.4060491Z             {
2026-06-21T08:16:00.4060623Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.4060718Z               "line": 987
2026-06-21T08:16:00.4060799Z             },
2026-06-21T08:16:00.4060882Z             {
2026-06-21T08:16:00.4061004Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T08:16:00.4061090Z               "line": 1009
2026-06-21T08:16:00.4061167Z             },
2026-06-21T08:16:00.4061252Z             {
2026-06-21T08:16:00.4061376Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T08:16:00.4061468Z               "line": 1419
2026-06-21T08:16:00.4061544Z             },
2026-06-21T08:16:00.4061638Z             {
2026-06-21T08:16:00.4061749Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T08:16:00.4061943Z               "line": 1036
2026-06-21T08:16:00.4062116Z             }
2026-06-21T08:16:00.4062196Z           ]
2026-06-21T08:16:00.4062277Z         }
2026-06-21T08:16:00.4062364Z       }
2026-06-21T08:16:00.4062440Z     },
2026-06-21T08:16:00.4062525Z     {
2026-06-21T08:16:00.4062621Z       "id": "REQ-SUBNET-8",
2026-06-21T08:16:00.4063710Z       "title": "Status render honesty: zero-subnet text is daemon-aware ('No subnets registered — this node is standalone.' + daemon-running-dependent blurb, never implying messaging works while the daemon is down); hint footer prints on bare spt subnet only (status drops it); a stalled pump is surfaced in subnet status, never rendered implied-healthy (M8 decisions 11-12, 23)",
2026-06-21T08:16:00.4063805Z       "requiredStages": [
2026-06-21T08:16:00.4063895Z         "impl",
2026-06-21T08:16:00.4063977Z         "unit"
2026-06-21T08:16:00.4064062Z       ],
2026-06-21T08:16:00.4064143Z       "stages": {
2026-06-21T08:16:00.4064243Z         "doc": {
2026-06-21T08:16:00.4064340Z           "complete": false,
2026-06-21T08:16:00.4064430Z           "evidence": []
2026-06-21T08:16:00.4064515Z         },
2026-06-21T08:16:00.4064597Z         "impl": {
2026-06-21T08:16:00.4064687Z           "complete": true,
2026-06-21T08:16:00.4064773Z           "evidence": [
2026-06-21T08:16:00.4064858Z             {
2026-06-21T08:16:00.4064974Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4065063Z               "line": 3835
2026-06-21T08:16:00.4065149Z             },
2026-06-21T08:16:00.4065227Z             {
2026-06-21T08:16:00.4065335Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4065416Z               "line": 3864
2026-06-21T08:16:00.4065497Z             },
2026-06-21T08:16:00.4065575Z             {
2026-06-21T08:16:00.4065674Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4065768Z               "line": 3881
2026-06-21T08:16:00.4065849Z             },
2026-06-21T08:16:00.4065940Z             {
2026-06-21T08:16:00.4066042Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4066123Z               "line": 3904
2026-06-21T08:16:00.4066233Z             },
2026-06-21T08:16:00.4066348Z             {
2026-06-21T08:16:00.4066447Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4066534Z               "line": 4318
2026-06-21T08:16:00.4066620Z             }
2026-06-21T08:16:00.4066709Z           ]
2026-06-21T08:16:00.4066790Z         },
2026-06-21T08:16:00.4066882Z         "int": {
2026-06-21T08:16:00.4066973Z           "complete": false,
2026-06-21T08:16:00.4067077Z           "evidence": []
2026-06-21T08:16:00.4067153Z         },
2026-06-21T08:16:00.4067240Z         "unit": {
2026-06-21T08:16:00.4067335Z           "complete": true,
2026-06-21T08:16:00.4067415Z           "evidence": [
2026-06-21T08:16:00.4067512Z             {
2026-06-21T08:16:00.4067606Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4067692Z               "line": 10225
2026-06-21T08:16:00.4067779Z             },
2026-06-21T08:16:00.4067869Z             {
2026-06-21T08:16:00.4067978Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4068064Z               "line": 10241
2026-06-21T08:16:00.4068147Z             }
2026-06-21T08:16:00.4068227Z           ]
2026-06-21T08:16:00.4068307Z         }
2026-06-21T08:16:00.4068392Z       }
2026-06-21T08:16:00.4068473Z     },
2026-06-21T08:16:00.4068553Z     {
2026-06-21T08:16:00.4068642Z       "id": "REQ-TERM-1",
2026-06-21T08:16:00.4068809Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-21T08:16:00.4068891Z       "requiredStages": [
2026-06-21T08:16:00.4069062Z         "impl",
2026-06-21T08:16:00.4069182Z         "unit"
2026-06-21T08:16:00.4069648Z       ],
2026-06-21T08:16:00.4069792Z       "stages": {
2026-06-21T08:16:00.4069897Z         "doc": {
2026-06-21T08:16:00.4070020Z           "complete": false,
2026-06-21T08:16:00.4070126Z           "evidence": []
2026-06-21T08:16:00.4070455Z         },
2026-06-21T08:16:00.4070560Z         "impl": {
2026-06-21T08:16:00.4070665Z           "complete": true,
2026-06-21T08:16:00.4070889Z           "evidence": [
2026-06-21T08:16:00.4070990Z             {
2026-06-21T08:16:00.4071145Z               "path": "crates/spt-term/src/pty.rs",
2026-06-21T08:16:00.4071249Z               "line": 59
2026-06-21T08:16:00.4071345Z             },
2026-06-21T08:16:00.4071442Z             {
2026-06-21T08:16:00.4071578Z               "path": "crates/spt-term/src/pty.rs",
2026-06-21T08:16:00.4071689Z               "line": 234
2026-06-21T08:16:00.4071785Z             },
2026-06-21T08:16:00.4071883Z             {
2026-06-21T08:16:00.4072037Z               "path": "crates/spt-term/src/surface.rs",
2026-06-21T08:16:00.4072137Z               "line": 100
2026-06-21T08:16:00.4072237Z             }
2026-06-21T08:16:00.4072328Z           ]
2026-06-21T08:16:00.4072427Z         },
2026-06-21T08:16:00.4072527Z         "int": {
2026-06-21T08:16:00.4072643Z           "complete": false,
2026-06-21T08:16:00.4072776Z           "evidence": []
2026-06-21T08:16:00.4072881Z         },
2026-06-21T08:16:00.4072986Z         "unit": {
2026-06-21T08:16:00.4073099Z           "complete": true,
2026-06-21T08:16:00.4073209Z           "evidence": [
2026-06-21T08:16:00.4073306Z             {
2026-06-21T08:16:00.4073456Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-21T08:16:00.4073561Z               "line": 24
2026-06-21T08:16:00.4073661Z             },
2026-06-21T08:16:00.4073749Z             {
2026-06-21T08:16:00.4073893Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-21T08:16:00.4073999Z               "line": 56
2026-06-21T08:16:00.4074088Z             }
2026-06-21T08:16:00.4074193Z           ]
2026-06-21T08:16:00.4074289Z         }
2026-06-21T08:16:00.4074388Z       }
2026-06-21T08:16:00.4074488Z     },
2026-06-21T08:16:00.4074585Z     {
2026-06-21T08:16:00.4074694Z       "id": "REQ-TERM-2",
2026-06-21T08:16:00.4074919Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-21T08:16:00.4075041Z       "requiredStages": [
2026-06-21T08:16:00.4075147Z         "impl",
2026-06-21T08:16:00.4079029Z         "unit"
2026-06-21T08:16:00.4079155Z       ],
2026-06-21T08:16:00.4079437Z       "stages": {
2026-06-21T08:16:00.4079564Z         "doc": {
2026-06-21T08:16:00.4079699Z           "complete": false,
2026-06-21T08:16:00.4079794Z           "evidence": []
2026-06-21T08:16:00.4079870Z         },
2026-06-21T08:16:00.4079951Z         "impl": {
2026-06-21T08:16:00.4080037Z           "complete": true,
2026-06-21T08:16:00.4080133Z           "evidence": [
2026-06-21T08:16:00.4080217Z             {
2026-06-21T08:16:00.4080338Z               "path": "crates/spt-term/src/surface.rs",
2026-06-21T08:16:00.4080423Z               "line": 117
2026-06-21T08:16:00.4080509Z             },
2026-06-21T08:16:00.4080595Z             {
2026-06-21T08:16:00.4080705Z               "path": "crates/spt-term/src/surface.rs",
2026-06-21T08:16:00.4080809Z               "line": 127
2026-06-21T08:16:00.4080891Z             }
2026-06-21T08:16:00.4080968Z           ]
2026-06-21T08:16:00.4081043Z         },
2026-06-21T08:16:00.4081124Z         "int": {
2026-06-21T08:16:00.4081220Z           "complete": false,
2026-06-21T08:16:00.4081302Z           "evidence": []
2026-06-21T08:16:00.4081386Z         },
2026-06-21T08:16:00.4081473Z         "unit": {
2026-06-21T08:16:00.4081559Z           "complete": true,
2026-06-21T08:16:00.4081649Z           "evidence": [
2026-06-21T08:16:00.4081724Z             {
2026-06-21T08:16:00.4081848Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-21T08:16:00.4081939Z               "line": 46
2026-06-21T08:16:00.4082020Z             },
2026-06-21T08:16:00.4082105Z             {
2026-06-21T08:16:00.4082216Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-21T08:16:00.4082311Z               "line": 77
2026-06-21T08:16:00.4082387Z             }
2026-06-21T08:16:00.4082462Z           ]
2026-06-21T08:16:00.4082688Z         }
2026-06-21T08:16:00.4082792Z       }
2026-06-21T08:16:00.4082874Z     },
2026-06-21T08:16:00.4082950Z     {
2026-06-21T08:16:00.4083135Z       "id": "REQ-TERM-3",
2026-06-21T08:16:00.4083265Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-21T08:16:00.4083364Z       "requiredStages": [
2026-06-21T08:16:00.4083446Z         "impl",
2026-06-21T08:16:00.4083527Z         "unit"
2026-06-21T08:16:00.4083612Z       ],
2026-06-21T08:16:00.4083693Z       "stages": {
2026-06-21T08:16:00.4083770Z         "doc": {
2026-06-21T08:16:00.4083889Z           "complete": false,
2026-06-21T08:16:00.4083983Z           "evidence": []
2026-06-21T08:16:00.4084064Z         },
2026-06-21T08:16:00.4084145Z         "impl": {
2026-06-21T08:16:00.4084240Z           "complete": true,
2026-06-21T08:16:00.4084319Z           "evidence": [
2026-06-21T08:16:00.4084400Z             {
2026-06-21T08:16:00.4084506Z               "path": "crates/spt-term/src/stream.rs",
2026-06-21T08:16:00.4084591Z               "line": 71
2026-06-21T08:16:00.4084676Z             }
2026-06-21T08:16:00.4084763Z           ]
2026-06-21T08:16:00.4084844Z         },
2026-06-21T08:16:00.4084935Z         "int": {
2026-06-21T08:16:00.4085034Z           "complete": false,
2026-06-21T08:16:00.4085112Z           "evidence": []
2026-06-21T08:16:00.4085192Z         },
2026-06-21T08:16:00.4085268Z         "unit": {
2026-06-21T08:16:00.4085363Z           "complete": true,
2026-06-21T08:16:00.4085460Z           "evidence": [
2026-06-21T08:16:00.4085560Z             {
2026-06-21T08:16:00.4085697Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-21T08:16:00.4085794Z               "line": 37
2026-06-21T08:16:00.4085889Z             },
2026-06-21T08:16:00.4085988Z             {
2026-06-21T08:16:00.4086118Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-21T08:16:00.4086222Z               "line": 67
2026-06-21T08:16:00.4086313Z             }
2026-06-21T08:16:00.4086414Z           ]
2026-06-21T08:16:00.4086507Z         }
2026-06-21T08:16:00.4086632Z       }
2026-06-21T08:16:00.4086729Z     },
2026-06-21T08:16:00.4086831Z     {
2026-06-21T08:16:00.4086950Z       "id": "REQ-TERM-4",
2026-06-21T08:16:00.4087524Z       "title": "Live activity buffer (session digest): projection of normalized session logs, snapshot-pull (spt endpoint digest) + structured-delta-stream contract + api digest-entry push",
2026-06-21T08:16:00.4087635Z       "requiredStages": [
2026-06-21T08:16:00.4087735Z         "impl",
2026-06-21T08:16:00.4087839Z         "unit",
2026-06-21T08:16:00.4087935Z         "int"
2026-06-21T08:16:00.4088040Z       ],
2026-06-21T08:16:00.4088140Z       "stages": {
2026-06-21T08:16:00.4088240Z         "doc": {
2026-06-21T08:16:00.4088351Z           "complete": false,
2026-06-21T08:16:00.4088455Z           "evidence": []
2026-06-21T08:16:00.4088550Z         },
2026-06-21T08:16:00.4088642Z         "impl": {
2026-06-21T08:16:00.4088750Z           "complete": true,
2026-06-21T08:16:00.4088851Z           "evidence": [
2026-06-21T08:16:00.4089036Z             {
2026-06-21T08:16:00.4089180Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T08:16:00.4089291Z               "line": 37
2026-06-21T08:16:00.4089393Z             },
2026-06-21T08:16:00.4089488Z             {
2026-06-21T08:16:00.4089636Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-21T08:16:00.4089739Z               "line": 25
2026-06-21T08:16:00.4089833Z             },
2026-06-21T08:16:00.4089939Z             {
2026-06-21T08:16:00.4090073Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-21T08:16:00.4090182Z               "line": 114
2026-06-21T08:16:00.4090283Z             },
2026-06-21T08:16:00.4090387Z             {
2026-06-21T08:16:00.4090531Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-21T08:16:00.4090636Z               "line": 267
2026-06-21T08:16:00.4090735Z             },
2026-06-21T08:16:00.4090831Z             {
2026-06-21T08:16:00.4090969Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-21T08:16:00.4091209Z               "line": 289
2026-06-21T08:16:00.4091288Z             },
2026-06-21T08:16:00.4091500Z             {
2026-06-21T08:16:00.4091636Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-21T08:16:00.4091732Z               "line": 307
2026-06-21T08:16:00.4091834Z             },
2026-06-21T08:16:00.4091927Z             {
2026-06-21T08:16:00.4092056Z               "path": "crates/spt-store/src/history.rs",
2026-06-21T08:16:00.4092167Z               "line": 33
2026-06-21T08:16:00.4092265Z             },
2026-06-21T08:16:00.4092360Z             {
2026-06-21T08:16:00.4092504Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4092608Z               "line": 52
2026-06-21T08:16:00.4092708Z             },
2026-06-21T08:16:00.4092809Z             {
2026-06-21T08:16:00.4092947Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4093057Z               "line": 180
2026-06-21T08:16:00.4093148Z             },
2026-06-21T08:16:00.4093262Z             {
2026-06-21T08:16:00.4093390Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4093500Z               "line": 190
2026-06-21T08:16:00.4093605Z             },
2026-06-21T08:16:00.4093696Z             {
2026-06-21T08:16:00.4093834Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4093934Z               "line": 250
2026-06-21T08:16:00.4094035Z             },
2026-06-21T08:16:00.4094120Z             {
2026-06-21T08:16:00.4094263Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.4094374Z               "line": 284
2026-06-21T08:16:00.4094464Z             },
2026-06-21T08:16:00.4094562Z             {
2026-06-21T08:16:00.4094701Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.4094800Z               "line": 295
2026-06-21T08:16:00.4094898Z             },
2026-06-21T08:16:00.4094999Z             {
2026-06-21T08:16:00.4095129Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4095241Z               "line": 1193
2026-06-21T08:16:00.4095347Z             }
2026-06-21T08:16:00.4095428Z           ]
2026-06-21T08:16:00.4095509Z         },
2026-06-21T08:16:00.4095594Z         "int": {
2026-06-21T08:16:00.4095686Z           "complete": true,
2026-06-21T08:16:00.4095776Z           "evidence": [
2026-06-21T08:16:00.4095861Z             {
2026-06-21T08:16:00.4095982Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-21T08:16:00.4096067Z               "line": 18
2026-06-21T08:16:00.4096158Z             }
2026-06-21T08:16:00.4096239Z           ]
2026-06-21T08:16:00.4096315Z         },
2026-06-21T08:16:00.4096405Z         "unit": {
2026-06-21T08:16:00.4096491Z           "complete": true,
2026-06-21T08:16:00.4096577Z           "evidence": [
2026-06-21T08:16:00.4096659Z             {
2026-06-21T08:16:00.4096767Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T08:16:00.4096843Z               "line": 364
2026-06-21T08:16:00.4096926Z             },
2026-06-21T08:16:00.4097012Z             {
2026-06-21T08:16:00.4097121Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T08:16:00.4097207Z               "line": 416
2026-06-21T08:16:00.4097293Z             },
2026-06-21T08:16:00.4097378Z             {
2026-06-21T08:16:00.4097486Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T08:16:00.4097586Z               "line": 426
2026-06-21T08:16:00.4097667Z             },
2026-06-21T08:16:00.4097746Z             {
2026-06-21T08:16:00.4097871Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-21T08:16:00.4097957Z               "line": 436
2026-06-21T08:16:00.4098033Z             },
2026-06-21T08:16:00.4098108Z             {
2026-06-21T08:16:00.4098229Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-21T08:16:00.4098314Z               "line": 456
2026-06-21T08:16:00.4098395Z             },
2026-06-21T08:16:00.4098476Z             {
2026-06-21T08:16:00.4098582Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-21T08:16:00.4098762Z               "line": 478
2026-06-21T08:16:00.4098916Z             },
2026-06-21T08:16:00.4099091Z             {
2026-06-21T08:16:00.4099216Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-21T08:16:00.4099291Z               "line": 491
2026-06-21T08:16:00.4099372Z             },
2026-06-21T08:16:00.4099449Z             {
2026-06-21T08:16:00.4099569Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-21T08:16:00.4099658Z               "line": 502
2026-06-21T08:16:00.4099730Z             },
2026-06-21T08:16:00.4099807Z             {
2026-06-21T08:16:00.4099912Z               "path": "crates/spt-store/src/history.rs",
2026-06-21T08:16:00.4100001Z               "line": 108
2026-06-21T08:16:00.4100076Z             },
2026-06-21T08:16:00.4100158Z             {
2026-06-21T08:16:00.4100275Z               "path": "crates/spt-term/src/digest.rs",
2026-06-21T08:16:00.4100356Z               "line": 119
2026-06-21T08:16:00.4100447Z             },
2026-06-21T08:16:00.4100528Z             {
2026-06-21T08:16:00.4100628Z               "path": "crates/spt-term/src/digest.rs",
2026-06-21T08:16:00.4100723Z               "line": 127
2026-06-21T08:16:00.4100810Z             },
2026-06-21T08:16:00.4100891Z             {
2026-06-21T08:16:00.4100995Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4101077Z               "line": 474
2026-06-21T08:16:00.4101162Z             },
2026-06-21T08:16:00.4101234Z             {
2026-06-21T08:16:00.4101347Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4101430Z               "line": 501
2026-06-21T08:16:00.4101519Z             },
2026-06-21T08:16:00.4101600Z             {
2026-06-21T08:16:00.4101716Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4101801Z               "line": 520
2026-06-21T08:16:00.4101887Z             },
2026-06-21T08:16:00.4101963Z             {
2026-06-21T08:16:00.4102088Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4102173Z               "line": 535
2026-06-21T08:16:00.4102263Z             },
2026-06-21T08:16:00.4102346Z             {
2026-06-21T08:16:00.4102464Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4102559Z               "line": 561
2026-06-21T08:16:00.4102636Z             },
2026-06-21T08:16:00.4102728Z             {
2026-06-21T08:16:00.4102863Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4102948Z               "line": 581
2026-06-21T08:16:00.4103035Z             },
2026-06-21T08:16:00.4103117Z             {
2026-06-21T08:16:00.4103235Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4103326Z               "line": 591
2026-06-21T08:16:00.4103408Z             },
2026-06-21T08:16:00.4103483Z             {
2026-06-21T08:16:00.4103602Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4103689Z               "line": 683
2026-06-21T08:16:00.4103775Z             },
2026-06-21T08:16:00.4103860Z             {
2026-06-21T08:16:00.4103990Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.4104065Z               "line": 885
2026-06-21T08:16:00.4104155Z             },
2026-06-21T08:16:00.4104236Z             {
2026-06-21T08:16:00.4104342Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4104423Z               "line": 9792
2026-06-21T08:16:00.4104508Z             }
2026-06-21T08:16:00.4104590Z           ]
2026-06-21T08:16:00.4104671Z         }
2026-06-21T08:16:00.4104756Z       }
2026-06-21T08:16:00.4104828Z     },
2026-06-21T08:16:00.4104914Z     {
2026-06-21T08:16:00.4105000Z       "id": "REQ-TERM-5",
2026-06-21T08:16:00.4106469Z       "title": "Adapter-declared digest extractor seam: a `[digest]` manifest section declaring an imperative extractor (native harness log -> the {role,text,tool,ts} contract; defaults to the [history] source files with an own-source escape hatch), `api digest-entry` push fallback, register-time validation of the section, adapter-declared presentation defaults (window depth, arg-truncation, sprint-collapse) that any consumer may override, and a `spt adapter digest-proof` author tool plus runtime skip-diagnostics (no silent drop). Reverses M9's no-manifest-seam stance; no declarative DSL.",
2026-06-21T08:16:00.4106808Z       "requiredStages": [
2026-06-21T08:16:00.4106890Z         "doc",
2026-06-21T08:16:00.4106984Z         "impl",
2026-06-21T08:16:00.4107061Z         "unit",
2026-06-21T08:16:00.4107142Z         "int"
2026-06-21T08:16:00.4107229Z       ],
2026-06-21T08:16:00.4107313Z       "stages": {
2026-06-21T08:16:00.4107399Z         "doc": {
2026-06-21T08:16:00.4107482Z           "complete": true,
2026-06-21T08:16:00.4107572Z           "evidence": [
2026-06-21T08:16:00.4107651Z             {
2026-06-21T08:16:00.4107753Z               "path": "docs/MANIFEST.md",
2026-06-21T08:16:00.4107839Z               "line": 234
2026-06-21T08:16:00.4107919Z             }
2026-06-21T08:16:00.4108008Z           ]
2026-06-21T08:16:00.4108089Z         },
2026-06-21T08:16:00.4108180Z         "impl": {
2026-06-21T08:16:00.4108264Z           "complete": true,
2026-06-21T08:16:00.4108359Z           "evidence": [
2026-06-21T08:16:00.4108440Z             {
2026-06-21T08:16:00.4108550Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T08:16:00.4108640Z               "line": 75
2026-06-21T08:16:00.4108712Z             },
2026-06-21T08:16:00.4108794Z             {
2026-06-21T08:16:00.4108899Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T08:16:00.4109075Z               "line": 131
2026-06-21T08:16:00.4109156Z             },
2026-06-21T08:16:00.4109237Z             {
2026-06-21T08:16:00.4109346Z               "path": "crates/spt-live/src/digest.rs",
2026-06-21T08:16:00.4109423Z               "line": 22
2026-06-21T08:16:00.4109513Z             },
2026-06-21T08:16:00.4109594Z             {
2026-06-21T08:16:00.4109699Z               "path": "crates/spt-live/src/digest.rs",
2026-06-21T08:16:00.4109790Z               "line": 87
2026-06-21T08:16:00.4109870Z             },
2026-06-21T08:16:00.4109956Z             {
2026-06-21T08:16:00.4110067Z               "path": "crates/spt-term/src/digest.rs",
2026-06-21T08:16:00.4110162Z               "line": 30
2026-06-21T08:16:00.4110247Z             },
2026-06-21T08:16:00.4110315Z             {
2026-06-21T08:16:00.4110434Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4110514Z               "line": 103
2026-06-21T08:16:00.4110595Z             },
2026-06-21T08:16:00.4110676Z             {
2026-06-21T08:16:00.4110794Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4110878Z               "line": 167
2026-06-21T08:16:00.4110958Z             },
2026-06-21T08:16:00.4111040Z             {
2026-06-21T08:16:00.4111151Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4111235Z               "line": 434
2026-06-21T08:16:00.4111327Z             },
2026-06-21T08:16:00.4111408Z             {
2026-06-21T08:16:00.4111517Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4111612Z               "line": 5650
2026-06-21T08:16:00.4111690Z             },
2026-06-21T08:16:00.4111770Z             {
2026-06-21T08:16:00.4111874Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4111952Z               "line": 5957
2026-06-21T08:16:00.4112028Z             }
2026-06-21T08:16:00.4112113Z           ]
2026-06-21T08:16:00.4112189Z         },
2026-06-21T08:16:00.4112281Z         "int": {
2026-06-21T08:16:00.4112362Z           "complete": true,
2026-06-21T08:16:00.4112457Z           "evidence": [
2026-06-21T08:16:00.4112538Z             {
2026-06-21T08:16:00.4112691Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-21T08:16:00.4112781Z               "line": 17
2026-06-21T08:16:00.4112886Z             }
2026-06-21T08:16:00.4112973Z           ]
2026-06-21T08:16:00.4113057Z         },
2026-06-21T08:16:00.4113244Z         "unit": {
2026-06-21T08:16:00.4113325Z           "complete": true,
2026-06-21T08:16:00.4113504Z           "evidence": [
2026-06-21T08:16:00.4113595Z             {
2026-06-21T08:16:00.4113696Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T08:16:00.4113786Z               "line": 375
2026-06-21T08:16:00.4113872Z             },
2026-06-21T08:16:00.4113953Z             {
2026-06-21T08:16:00.4114057Z               "path": "crates/spt-live/src/digest.rs",
2026-06-21T08:16:00.4114138Z               "line": 162
2026-06-21T08:16:00.4114221Z             },
2026-06-21T08:16:00.4114301Z             {
2026-06-21T08:16:00.4114405Z               "path": "crates/spt-live/src/digest.rs",
2026-06-21T08:16:00.4114487Z               "line": 179
2026-06-21T08:16:00.4114569Z             },
2026-06-21T08:16:00.4114654Z             {
2026-06-21T08:16:00.4114768Z               "path": "crates/spt-live/src/digest.rs",
2026-06-21T08:16:00.4114850Z               "line": 201
2026-06-21T08:16:00.4114931Z             },
2026-06-21T08:16:00.4115016Z             {
2026-06-21T08:16:00.4115126Z               "path": "crates/spt-live/src/digest.rs",
2026-06-21T08:16:00.4115222Z               "line": 212
2026-06-21T08:16:00.4115292Z             },
2026-06-21T08:16:00.4115378Z             {
2026-06-21T08:16:00.4115489Z               "path": "crates/spt-live/src/digest.rs",
2026-06-21T08:16:00.4115579Z               "line": 223
2026-06-21T08:16:00.4115669Z             },
2026-06-21T08:16:00.4115749Z             {
2026-06-21T08:16:00.4115863Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.4115962Z               "line": 1525
2026-06-21T08:16:00.4116042Z             },
2026-06-21T08:16:00.4116128Z             {
2026-06-21T08:16:00.4116244Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.4116338Z               "line": 1568
2026-06-21T08:16:00.4116419Z             },
2026-06-21T08:16:00.4116491Z             {
2026-06-21T08:16:00.4116615Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4116705Z               "line": 606
2026-06-21T08:16:00.4116792Z             },
2026-06-21T08:16:00.4116863Z             {
2026-06-21T08:16:00.4116977Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4117058Z               "line": 634
2026-06-21T08:16:00.4117140Z             },
2026-06-21T08:16:00.4117230Z             {
2026-06-21T08:16:00.4117334Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4117431Z               "line": 646
2026-06-21T08:16:00.4117511Z             },
2026-06-21T08:16:00.4117592Z             {
2026-06-21T08:16:00.4117702Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4117793Z               "line": 669
2026-06-21T08:16:00.4117878Z             },
2026-06-21T08:16:00.4117950Z             {
2026-06-21T08:16:00.4118056Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4118136Z               "line": 8503
2026-06-21T08:16:00.4118231Z             },
2026-06-21T08:16:00.4118313Z             {
2026-06-21T08:16:00.4118418Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4118512Z               "line": 8561
2026-06-21T08:16:00.4118583Z             }
2026-06-21T08:16:00.4118669Z           ]
2026-06-21T08:16:00.4118750Z         }
2026-06-21T08:16:00.4118834Z       }
2026-06-21T08:16:00.4118909Z     },
2026-06-21T08:16:00.4119092Z     {
2026-06-21T08:16:00.4119191Z       "id": "REQ-TERM-6",
2026-06-21T08:16:00.4120289Z       "title": "Thread-spanning digest across session boundaries: a per-endpoint session ledger (`<perch>/sessions.log`) appended at first bind and by `api boundary` on `/clear`|`/compact` session rotation, the digest enumerating the last K sessions so its rolling window bridges a boundary, and a distinctive in-timeline boundary marker (DigestEntry::Boundary). The digest follows the live-agent thread, not a single session.",
2026-06-21T08:16:00.4120393Z       "requiredStages": [
2026-06-21T08:16:00.4120584Z         "impl",
2026-06-21T08:16:00.4120665Z         "unit",
2026-06-21T08:16:00.4120750Z         "int"
2026-06-21T08:16:00.4120919Z       ],
2026-06-21T08:16:00.4121004Z       "stages": {
2026-06-21T08:16:00.4121088Z         "doc": {
2026-06-21T08:16:00.4121178Z           "complete": false,
2026-06-21T08:16:00.4121273Z           "evidence": []
2026-06-21T08:16:00.4121349Z         },
2026-06-21T08:16:00.4121429Z         "impl": {
2026-06-21T08:16:00.4121528Z           "complete": true,
2026-06-21T08:16:00.4121625Z           "evidence": [
2026-06-21T08:16:00.4121706Z             {
2026-06-21T08:16:00.4121829Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T08:16:00.4121916Z               "line": 132
2026-06-21T08:16:00.4121987Z             },
2026-06-21T08:16:00.4122072Z             {
2026-06-21T08:16:00.4122187Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T08:16:00.4122278Z               "line": 187
2026-06-21T08:16:00.4122350Z             },
2026-06-21T08:16:00.4122439Z             {
2026-06-21T08:16:00.4122550Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-21T08:16:00.4122631Z               "line": 17
2026-06-21T08:16:00.4122716Z             },
2026-06-21T08:16:00.4122793Z             {
2026-06-21T08:16:00.4122922Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-21T08:16:00.4123003Z               "line": 104
2026-06-21T08:16:00.4123088Z             },
2026-06-21T08:16:00.4123175Z             {
2026-06-21T08:16:00.4123284Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4123374Z               "line": 319
2026-06-21T08:16:00.4123456Z             },
2026-06-21T08:16:00.4123543Z             {
2026-06-21T08:16:00.4123650Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4123742Z               "line": 396
2026-06-21T08:16:00.4123828Z             }
2026-06-21T08:16:00.4123914Z           ]
2026-06-21T08:16:00.4123993Z         },
2026-06-21T08:16:00.4124073Z         "int": {
2026-06-21T08:16:00.4124175Z           "complete": true,
2026-06-21T08:16:00.4124266Z           "evidence": [
2026-06-21T08:16:00.4124360Z             {
2026-06-21T08:16:00.4124509Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-21T08:16:00.4124599Z               "line": 18
2026-06-21T08:16:00.4124679Z             }
2026-06-21T08:16:00.4124752Z           ]
2026-06-21T08:16:00.4124842Z         },
2026-06-21T08:16:00.4124923Z         "unit": {
2026-06-21T08:16:00.4125018Z           "complete": true,
2026-06-21T08:16:00.4125115Z           "evidence": [
2026-06-21T08:16:00.4125195Z             {
2026-06-21T08:16:00.4125309Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-21T08:16:00.4125396Z               "line": 135
2026-06-21T08:16:00.4125477Z             },
2026-06-21T08:16:00.4125557Z             {
2026-06-21T08:16:00.4125671Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-21T08:16:00.4125768Z               "line": 150
2026-06-21T08:16:00.4125852Z             },
2026-06-21T08:16:00.4125943Z             {
2026-06-21T08:16:00.4126049Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-21T08:16:00.4126149Z               "line": 166
2026-06-21T08:16:00.4126233Z             },
2026-06-21T08:16:00.4126314Z             {
2026-06-21T08:16:00.4126433Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-21T08:16:00.4126526Z               "line": 257
2026-06-21T08:16:00.4126612Z             },
2026-06-21T08:16:00.4126693Z             {
2026-06-21T08:16:00.4126818Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4126903Z               "line": 738
2026-06-21T08:16:00.4126980Z             },
2026-06-21T08:16:00.4127061Z             {
2026-06-21T08:16:00.4127175Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4127274Z               "line": 759
2026-06-21T08:16:00.4127353Z             },
2026-06-21T08:16:00.4127442Z             {
2026-06-21T08:16:00.4127638Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T08:16:00.4127723Z               "line": 726
2026-06-21T08:16:00.4127895Z             }
2026-06-21T08:16:00.4127977Z           ]
2026-06-21T08:16:00.4128057Z         }
2026-06-21T08:16:00.4128138Z       }
2026-06-21T08:16:00.4128223Z     },
2026-06-21T08:16:00.4128311Z     {
2026-06-21T08:16:00.4128400Z       "id": "REQ-TERM-7",
2026-06-21T08:16:00.4129608Z       "title": "Two-origin digest merge: spt-owned context-injection entries (psyche_download | echo_mirror | owl_message) appended by spt to the endpoint `digest.log`, timestamp-interleaved with the adapter's extracted activity records into one ordered timeline, via a distinct context-injection record category. Data model only this milestone; GUI collapse/expand and the echo-reads-digest delta loop are deferred to the surfaces that consume them.",
2026-06-21T08:16:00.4129699Z       "requiredStages": [
2026-06-21T08:16:00.4129789Z         "impl",
2026-06-21T08:16:00.4129875Z         "unit",
2026-06-21T08:16:00.4129962Z         "int"
2026-06-21T08:16:00.4130038Z       ],
2026-06-21T08:16:00.4130122Z       "stages": {
2026-06-21T08:16:00.4130220Z         "doc": {
2026-06-21T08:16:00.4130310Z           "complete": false,
2026-06-21T08:16:00.4130399Z           "evidence": []
2026-06-21T08:16:00.4130491Z         },
2026-06-21T08:16:00.4130572Z         "impl": {
2026-06-21T08:16:00.4130667Z           "complete": true,
2026-06-21T08:16:00.4130752Z           "evidence": [
2026-06-21T08:16:00.4130844Z             {
2026-06-21T08:16:00.4130958Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T08:16:00.4131053Z               "line": 133
2026-06-21T08:16:00.4131134Z             },
2026-06-21T08:16:00.4131216Z             {
2026-06-21T08:16:00.4131338Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T08:16:00.4131415Z               "line": 326
2026-06-21T08:16:00.4131503Z             },
2026-06-21T08:16:00.4131578Z             {
2026-06-21T08:16:00.4131691Z               "path": "crates/spt-live/src/inject.rs",
2026-06-21T08:16:00.4131786Z               "line": 15
2026-06-21T08:16:00.4131867Z             },
2026-06-21T08:16:00.4131956Z             {
2026-06-21T08:16:00.4132060Z               "path": "crates/spt-live/src/inject.rs",
2026-06-21T08:16:00.4132146Z               "line": 32
2026-06-21T08:16:00.4132223Z             },
2026-06-21T08:16:00.4132309Z             {
2026-06-21T08:16:00.4132418Z               "path": "crates/spt-store/src/history.rs",
2026-06-21T08:16:00.4132510Z               "line": 49
2026-06-21T08:16:00.4132595Z             },
2026-06-21T08:16:00.4132670Z             {
2026-06-21T08:16:00.4132786Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4132876Z               "line": 286
2026-06-21T08:16:00.4132962Z             },
2026-06-21T08:16:00.4133033Z             {
2026-06-21T08:16:00.4133139Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4133228Z               "line": 320
2026-06-21T08:16:00.4133314Z             }
2026-06-21T08:16:00.4133396Z           ]
2026-06-21T08:16:00.4133473Z         },
2026-06-21T08:16:00.4133563Z         "int": {
2026-06-21T08:16:00.4133658Z           "complete": true,
2026-06-21T08:16:00.4133744Z           "evidence": [
2026-06-21T08:16:00.4133820Z             {
2026-06-21T08:16:00.4133963Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-21T08:16:00.4134050Z               "line": 19
2026-06-21T08:16:00.4134135Z             }
2026-06-21T08:16:00.4134215Z           ]
2026-06-21T08:16:00.4134302Z         },
2026-06-21T08:16:00.4134379Z         "unit": {
2026-06-21T08:16:00.4134478Z           "complete": true,
2026-06-21T08:16:00.4134558Z           "evidence": [
2026-06-21T08:16:00.4134643Z             {
2026-06-21T08:16:00.4134745Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T08:16:00.4134840Z               "line": 455
2026-06-21T08:16:00.4134925Z             },
2026-06-21T08:16:00.4134997Z             {
2026-06-21T08:16:00.4135225Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T08:16:00.4135307Z               "line": 568
2026-06-21T08:16:00.4135511Z             },
2026-06-21T08:16:00.4135597Z             {
2026-06-21T08:16:00.4135699Z               "path": "crates/spt-live/src/inject.rs",
2026-06-21T08:16:00.4135788Z               "line": 58
2026-06-21T08:16:00.4135873Z             },
2026-06-21T08:16:00.4135965Z             {
2026-06-21T08:16:00.4136079Z               "path": "crates/spt-live/src/inject.rs",
2026-06-21T08:16:00.4136174Z               "line": 77
2026-06-21T08:16:00.4136256Z             },
2026-06-21T08:16:00.4136338Z             {
2026-06-21T08:16:00.4136450Z               "path": "crates/spt-live/src/inject.rs",
2026-06-21T08:16:00.4136537Z               "line": 87
2026-06-21T08:16:00.4136624Z             },
2026-06-21T08:16:00.4136704Z             {
2026-06-21T08:16:00.4136822Z               "path": "crates/spt-store/src/history.rs",
2026-06-21T08:16:00.4136913Z               "line": 94
2026-06-21T08:16:00.4136989Z             },
2026-06-21T08:16:00.4137068Z             {
2026-06-21T08:16:00.4137181Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4137278Z               "line": 691
2026-06-21T08:16:00.4137355Z             },
2026-06-21T08:16:00.4137435Z             {
2026-06-21T08:16:00.4137549Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T08:16:00.4137631Z               "line": 716
2026-06-21T08:16:00.4137725Z             }
2026-06-21T08:16:00.4137806Z           ]
2026-06-21T08:16:00.4137893Z         }
2026-06-21T08:16:00.4137964Z       }
2026-06-21T08:16:00.4138045Z     },
2026-06-21T08:16:00.4138135Z     {
2026-06-21T08:16:00.4138222Z       "id": "REQ-UPD-1",
2026-06-21T08:16:00.4138341Z       "title": "Peer-propagated update over P2P",
2026-06-21T08:16:00.4138431Z       "requiredStages": [
2026-06-21T08:16:00.4138518Z         "impl",
2026-06-21T08:16:00.4138603Z         "unit",
2026-06-21T08:16:00.4138689Z         "int"
2026-06-21T08:16:00.4138779Z       ],
2026-06-21T08:16:00.4138857Z       "stages": {
2026-06-21T08:16:00.4139018Z         "doc": {
2026-06-21T08:16:00.4139113Z           "complete": false,
2026-06-21T08:16:00.4139210Z           "evidence": []
2026-06-21T08:16:00.4139284Z         },
2026-06-21T08:16:00.4139361Z         "impl": {
2026-06-21T08:16:00.4139458Z           "complete": true,
2026-06-21T08:16:00.4139534Z           "evidence": [
2026-06-21T08:16:00.4139613Z             {
2026-06-21T08:16:00.4139726Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T08:16:00.4139813Z               "line": 28
2026-06-21T08:16:00.4139893Z             },
2026-06-21T08:16:00.4139973Z             {
2026-06-21T08:16:00.4140092Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T08:16:00.4140173Z               "line": 103
2026-06-21T08:16:00.4140250Z             },
2026-06-21T08:16:00.4140330Z             {
2026-06-21T08:16:00.4140450Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T08:16:00.4140541Z               "line": 342
2026-06-21T08:16:00.4140612Z             },
2026-06-21T08:16:00.4140701Z             {
2026-06-21T08:16:00.4140808Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4140898Z               "line": 22
2026-06-21T08:16:00.4140979Z             },
2026-06-21T08:16:00.4141070Z             {
2026-06-21T08:16:00.4141179Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4141265Z               "line": 207
2026-06-21T08:16:00.4141346Z             },
2026-06-21T08:16:00.4141424Z             {
2026-06-21T08:16:00.4141542Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4141623Z               "line": 283
2026-06-21T08:16:00.4141704Z             },
2026-06-21T08:16:00.4141785Z             {
2026-06-21T08:16:00.4141903Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4141985Z               "line": 340
2026-06-21T08:16:00.4142068Z             },
2026-06-21T08:16:00.4142260Z             {
2026-06-21T08:16:00.4142365Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-21T08:16:00.4142540Z               "line": 37
2026-06-21T08:16:00.4142615Z             }
2026-06-21T08:16:00.4142692Z           ]
2026-06-21T08:16:00.4142779Z         },
2026-06-21T08:16:00.4142859Z         "int": {
2026-06-21T08:16:00.4142949Z           "complete": true,
2026-06-21T08:16:00.4143036Z           "evidence": [
2026-06-21T08:16:00.4143117Z             {
2026-06-21T08:16:00.4143244Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T08:16:00.4143337Z               "line": 207
2026-06-21T08:16:00.4143422Z             },
2026-06-21T08:16:00.4143503Z             {
2026-06-21T08:16:00.4143622Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T08:16:00.4143699Z               "line": 1082
2026-06-21T08:16:00.4143779Z             }
2026-06-21T08:16:00.4143865Z           ]
2026-06-21T08:16:00.4143951Z         },
2026-06-21T08:16:00.4144051Z         "unit": {
2026-06-21T08:16:00.4144132Z           "complete": true,
2026-06-21T08:16:00.4144218Z           "evidence": [
2026-06-21T08:16:00.4144291Z             {
2026-06-21T08:16:00.4144418Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4144504Z               "line": 490
2026-06-21T08:16:00.4144586Z             },
2026-06-21T08:16:00.4144667Z             {
2026-06-21T08:16:00.4144785Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4144877Z               "line": 616
2026-06-21T08:16:00.4144958Z             },
2026-06-21T08:16:00.4145038Z             {
2026-06-21T08:16:00.4145170Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-21T08:16:00.4145247Z               "line": 277
2026-06-21T08:16:00.4145324Z             },
2026-06-21T08:16:00.4145400Z             {
2026-06-21T08:16:00.4148710Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-21T08:16:00.4148806Z               "line": 124
2026-06-21T08:16:00.4148911Z             },
2026-06-21T08:16:00.4149063Z             {
2026-06-21T08:16:00.4149191Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-21T08:16:00.4149287Z               "line": 200
2026-06-21T08:16:00.4149373Z             }
2026-06-21T08:16:00.4149446Z           ]
2026-06-21T08:16:00.4149520Z         }
2026-06-21T08:16:00.4149606Z       }
2026-06-21T08:16:00.4149688Z     },
2026-06-21T08:16:00.4149765Z     {
2026-06-21T08:16:00.4149858Z       "id": "REQ-UPD-2",
2026-06-21T08:16:00.4150003Z       "title": "All binaries signature-verified before handoff",
2026-06-21T08:16:00.4150104Z       "requiredStages": [
2026-06-21T08:16:00.4150183Z         "impl",
2026-06-21T08:16:00.4150268Z         "unit"
2026-06-21T08:16:00.4150354Z       ],
2026-06-21T08:16:00.4150435Z       "stages": {
2026-06-21T08:16:00.4150518Z         "doc": {
2026-06-21T08:16:00.4150613Z           "complete": false,
2026-06-21T08:16:00.4150700Z           "evidence": []
2026-06-21T08:16:00.4150791Z         },
2026-06-21T08:16:00.4150871Z         "impl": {
2026-06-21T08:16:00.4150971Z           "complete": true,
2026-06-21T08:16:00.4151058Z           "evidence": [
2026-06-21T08:16:00.4151139Z             {
2026-06-21T08:16:00.4151262Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T08:16:00.4151354Z               "line": 343
2026-06-21T08:16:00.4151430Z             },
2026-06-21T08:16:00.4151510Z             {
2026-06-21T08:16:00.4151639Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T08:16:00.4151721Z               "line": 476
2026-06-21T08:16:00.4151806Z             },
2026-06-21T08:16:00.4151887Z             {
2026-06-21T08:16:00.4152008Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4152087Z               "line": 29
2026-06-21T08:16:00.4152173Z             },
2026-06-21T08:16:00.4152255Z             {
2026-06-21T08:16:00.4152365Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4152449Z               "line": 271
2026-06-21T08:16:00.4152665Z             },
2026-06-21T08:16:00.4152750Z             {
2026-06-21T08:16:00.4153015Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4153100Z               "line": 288
2026-06-21T08:16:00.4153175Z             },
2026-06-21T08:16:00.4153257Z             {
2026-06-21T08:16:00.4153363Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4153448Z               "line": 408
2026-06-21T08:16:00.4153529Z             },
2026-06-21T08:16:00.4153606Z             {
2026-06-21T08:16:00.4153725Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4153814Z               "line": 558
2026-06-21T08:16:00.4153892Z             },
2026-06-21T08:16:00.4153977Z             {
2026-06-21T08:16:00.4154091Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T08:16:00.4154182Z               "line": 155
2026-06-21T08:16:00.4154264Z             }
2026-06-21T08:16:00.4154349Z           ]
2026-06-21T08:16:00.4154430Z         },
2026-06-21T08:16:00.4154511Z         "int": {
2026-06-21T08:16:00.4154602Z           "complete": false,
2026-06-21T08:16:00.4154692Z           "evidence": []
2026-06-21T08:16:00.4154763Z         },
2026-06-21T08:16:00.4154846Z         "unit": {
2026-06-21T08:16:00.4154931Z           "complete": true,
2026-06-21T08:16:00.4155021Z           "evidence": [
2026-06-21T08:16:00.4155107Z             {
2026-06-21T08:16:00.4155218Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4155297Z               "line": 750
2026-06-21T08:16:00.4155393Z             },
2026-06-21T08:16:00.4155471Z             {
2026-06-21T08:16:00.4155584Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4155674Z               "line": 811
2026-06-21T08:16:00.4155759Z             },
2026-06-21T08:16:00.4155840Z             {
2026-06-21T08:16:00.4155946Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4156035Z               "line": 825
2026-06-21T08:16:00.4156122Z             },
2026-06-21T08:16:00.4156204Z             {
2026-06-21T08:16:00.4156317Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4156412Z               "line": 841
2026-06-21T08:16:00.4156499Z             },
2026-06-21T08:16:00.4156575Z             {
2026-06-21T08:16:00.4156688Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4156781Z               "line": 932
2026-06-21T08:16:00.4156861Z             },
2026-06-21T08:16:00.4156942Z             {
2026-06-21T08:16:00.4157052Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T08:16:00.4157143Z               "line": 414
2026-06-21T08:16:00.4157223Z             },
2026-06-21T08:16:00.4157309Z             {
2026-06-21T08:16:00.4157424Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T08:16:00.4157501Z               "line": 427
2026-06-21T08:16:00.4157585Z             },
2026-06-21T08:16:00.4157657Z             {
2026-06-21T08:16:00.4157792Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-21T08:16:00.4157871Z               "line": 410
2026-06-21T08:16:00.4157957Z             }
2026-06-21T08:16:00.4158038Z           ]
2026-06-21T08:16:00.4158119Z         }
2026-06-21T08:16:00.4158207Z       }
2026-06-21T08:16:00.4158283Z     },
2026-06-21T08:16:00.4158360Z     {
2026-06-21T08:16:00.4158446Z       "id": "REQ-UPD-3",
2026-06-21T08:16:00.4158617Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-21T08:16:00.4158717Z       "requiredStages": [
2026-06-21T08:16:00.4158793Z         "impl",
2026-06-21T08:16:00.4158874Z         "unit",
2026-06-21T08:16:00.4159033Z         "int"
2026-06-21T08:16:00.4159108Z       ],
2026-06-21T08:16:00.4159194Z       "stages": {
2026-06-21T08:16:00.4159275Z         "doc": {
2026-06-21T08:16:00.4159366Z           "complete": false,
2026-06-21T08:16:00.4159456Z           "evidence": []
2026-06-21T08:16:00.4159541Z         },
2026-06-21T08:16:00.4159623Z         "impl": {
2026-06-21T08:16:00.4159847Z           "complete": true,
2026-06-21T08:16:00.4159933Z           "evidence": [
2026-06-21T08:16:00.4160113Z             {
2026-06-21T08:16:00.4160234Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T08:16:00.4160316Z               "line": 40
2026-06-21T08:16:00.4160400Z             },
2026-06-21T08:16:00.4160481Z             {
2026-06-21T08:16:00.4160597Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T08:16:00.4160674Z               "line": 87
2026-06-21T08:16:00.4160757Z             },
2026-06-21T08:16:00.4160838Z             {
2026-06-21T08:16:00.4160947Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T08:16:00.4161033Z               "line": 1042
2026-06-21T08:16:00.4161112Z             },
2026-06-21T08:16:00.4161192Z             {
2026-06-21T08:16:00.4161294Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T08:16:00.4161380Z               "line": 1977
2026-06-21T08:16:00.4161469Z             },
2026-06-21T08:16:00.4161551Z             {
2026-06-21T08:16:00.4161656Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T08:16:00.4161746Z               "line": 26
2026-06-21T08:16:00.4161827Z             },
2026-06-21T08:16:00.4161905Z             {
2026-06-21T08:16:00.4162019Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T08:16:00.4162108Z               "line": 114
2026-06-21T08:16:00.4162190Z             },
2026-06-21T08:16:00.4162276Z             {
2026-06-21T08:16:00.4162385Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T08:16:00.4162475Z               "line": 246
2026-06-21T08:16:00.4162553Z             },
2026-06-21T08:16:00.4162638Z             {
2026-06-21T08:16:00.4162733Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4162820Z               "line": 2442
2026-06-21T08:16:00.4162906Z             }
2026-06-21T08:16:00.4162990Z           ]
2026-06-21T08:16:00.4163077Z         },
2026-06-21T08:16:00.4163163Z         "int": {
2026-06-21T08:16:00.4163249Z           "complete": true,
2026-06-21T08:16:00.4163343Z           "evidence": [
2026-06-21T08:16:00.4163423Z             {
2026-06-21T08:16:00.4163552Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-21T08:16:00.4163641Z               "line": 58
2026-06-21T08:16:00.4163731Z             }
2026-06-21T08:16:00.4163803Z           ]
2026-06-21T08:16:00.4163889Z         },
2026-06-21T08:16:00.4163970Z         "unit": {
2026-06-21T08:16:00.4164050Z           "complete": true,
2026-06-21T08:16:00.4164142Z           "evidence": [
2026-06-21T08:16:00.4164218Z             {
2026-06-21T08:16:00.4164346Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T08:16:00.4164437Z               "line": 532
2026-06-21T08:16:00.4164518Z             },
2026-06-21T08:16:00.4164599Z             {
2026-06-21T08:16:00.4164708Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T08:16:00.4164796Z               "line": 585
2026-06-21T08:16:00.4164880Z             },
2026-06-21T08:16:00.4164961Z             {
2026-06-21T08:16:00.4165062Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T08:16:00.4165153Z               "line": 653
2026-06-21T08:16:00.4165238Z             },
2026-06-21T08:16:00.4165314Z             {
2026-06-21T08:16:00.4165435Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T08:16:00.4165529Z               "line": 1102
2026-06-21T08:16:00.4165615Z             },
2026-06-21T08:16:00.4165687Z             {
2026-06-21T08:16:00.4165792Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T08:16:00.4165881Z               "line": 271
2026-06-21T08:16:00.4165958Z             },
2026-06-21T08:16:00.4166035Z             {
2026-06-21T08:16:00.4166140Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T08:16:00.4166243Z               "line": 295
2026-06-21T08:16:00.4166352Z             },
2026-06-21T08:16:00.4166444Z             {
2026-06-21T08:16:00.4166682Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T08:16:00.4166773Z               "line": 316
2026-06-21T08:16:00.4166929Z             },
2026-06-21T08:16:00.4167012Z             {
2026-06-21T08:16:00.4167126Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T08:16:00.4167216Z               "line": 332
2026-06-21T08:16:00.4167297Z             }
2026-06-21T08:16:00.4167383Z           ]
2026-06-21T08:16:00.4167464Z         }
2026-06-21T08:16:00.4167545Z       }
2026-06-21T08:16:00.4167626Z     },
2026-06-21T08:16:00.4167708Z     {
2026-06-21T08:16:00.4167802Z       "id": "REQ-UPD-4",
2026-06-21T08:16:00.4167976Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-21T08:16:00.4168070Z       "requiredStages": [
2026-06-21T08:16:00.4168150Z         "impl",
2026-06-21T08:16:00.4168237Z         "unit"
2026-06-21T08:16:00.4168318Z       ],
2026-06-21T08:16:00.4168403Z       "stages": {
2026-06-21T08:16:00.4168488Z         "doc": {
2026-06-21T08:16:00.4168588Z           "complete": false,
2026-06-21T08:16:00.4168679Z           "evidence": []
2026-06-21T08:16:00.4168767Z         },
2026-06-21T08:16:00.4168852Z         "impl": {
2026-06-21T08:16:00.4168939Z           "complete": true,
2026-06-21T08:16:00.4169096Z           "evidence": [
2026-06-21T08:16:00.4169186Z             {
2026-06-21T08:16:00.4169302Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T08:16:00.4169387Z               "line": 41
2026-06-21T08:16:00.4169496Z             },
2026-06-21T08:16:00.4169607Z             {
2026-06-21T08:16:00.4169749Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T08:16:00.4169845Z               "line": 88
2026-06-21T08:16:00.4169926Z             },
2026-06-21T08:16:00.4170007Z             {
2026-06-21T08:16:00.4170125Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-21T08:16:00.4170213Z               "line": 23
2026-06-21T08:16:00.4170298Z             },
2026-06-21T08:16:00.4170384Z             {
2026-06-21T08:16:00.4170523Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-21T08:16:00.4170618Z               "line": 56
2026-06-21T08:16:00.4170693Z             },
2026-06-21T08:16:00.4170779Z             {
2026-06-21T08:16:00.4170890Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-21T08:16:00.4170989Z               "line": 77
2026-06-21T08:16:00.4171065Z             },
2026-06-21T08:16:00.4171143Z             {
2026-06-21T08:16:00.4171262Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T08:16:00.4171345Z               "line": 236
2026-06-21T08:16:00.4171431Z             },
2026-06-21T08:16:00.4171512Z             {
2026-06-21T08:16:00.4171625Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T08:16:00.4171710Z               "line": 108
2026-06-21T08:16:00.4171792Z             },
2026-06-21T08:16:00.4171883Z             {
2026-06-21T08:16:00.4171987Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.4172086Z               "line": 270
2026-06-21T08:16:00.4172169Z             },
2026-06-21T08:16:00.4172245Z             {
2026-06-21T08:16:00.4172334Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4172426Z               "line": 2441
2026-06-21T08:16:00.4172512Z             }
2026-06-21T08:16:00.4172594Z           ]
2026-06-21T08:16:00.4172663Z         },
2026-06-21T08:16:00.4172736Z         "int": {
2026-06-21T08:16:00.4172837Z           "complete": false,
2026-06-21T08:16:00.4172927Z           "evidence": []
2026-06-21T08:16:00.4173012Z         },
2026-06-21T08:16:00.4173094Z         "unit": {
2026-06-21T08:16:00.4173179Z           "complete": true,
2026-06-21T08:16:00.4173270Z           "evidence": [
2026-06-21T08:16:00.4173346Z             {
2026-06-21T08:16:00.4173466Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T08:16:00.4173550Z               "line": 581
2026-06-21T08:16:00.4173627Z             },
2026-06-21T08:16:00.4173714Z             {
2026-06-21T08:16:00.4173936Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T08:16:00.4174022Z               "line": 706
2026-06-21T08:16:00.4174201Z             },
2026-06-21T08:16:00.4174282Z             {
2026-06-21T08:16:00.4174397Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-21T08:16:00.4174488Z               "line": 384
2026-06-21T08:16:00.4174563Z             },
2026-06-21T08:16:00.4174644Z             {
2026-06-21T08:16:00.4174754Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-21T08:16:00.4174835Z               "line": 102
2026-06-21T08:16:00.4174911Z             },
2026-06-21T08:16:00.4174997Z             {
2026-06-21T08:16:00.4175107Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-21T08:16:00.4175197Z               "line": 123
2026-06-21T08:16:00.4175278Z             },
2026-06-21T08:16:00.4175365Z             {
2026-06-21T08:16:00.4175464Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-21T08:16:00.4175550Z               "line": 142
2026-06-21T08:16:00.4175817Z             },
2026-06-21T08:16:00.4175898Z             {
2026-06-21T08:16:00.4176009Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T08:16:00.4176098Z               "line": 582
2026-06-21T08:16:00.4176184Z             },
2026-06-21T08:16:00.4176252Z             {
2026-06-21T08:16:00.4176361Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T08:16:00.4176451Z               "line": 566
2026-06-21T08:16:00.4176533Z             },
2026-06-21T08:16:00.4176615Z             {
2026-06-21T08:16:00.4176718Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4176808Z               "line": 8256
2026-06-21T08:16:00.4176884Z             }
2026-06-21T08:16:00.4176961Z           ]
2026-06-21T08:16:00.4177043Z         }
2026-06-21T08:16:00.4177123Z       }
2026-06-21T08:16:00.4177199Z     },
2026-06-21T08:16:00.4177276Z     {
2026-06-21T08:16:00.4177367Z       "id": "REQ-UPD-5",
2026-06-21T08:16:00.4177494Z       "title": "spt-core ripple-updates registered adapters",
2026-06-21T08:16:00.4177605Z       "requiredStages": [
2026-06-21T08:16:00.4177691Z         "impl",
2026-06-21T08:16:00.4177776Z         "unit"
2026-06-21T08:16:00.4177862Z       ],
2026-06-21T08:16:00.4177939Z       "stages": {
2026-06-21T08:16:00.4178024Z         "doc": {
2026-06-21T08:16:00.4178114Z           "complete": false,
2026-06-21T08:16:00.4178206Z           "evidence": []
2026-06-21T08:16:00.4178287Z         },
2026-06-21T08:16:00.4178367Z         "impl": {
2026-06-21T08:16:00.4178457Z           "complete": true,
2026-06-21T08:16:00.4178540Z           "evidence": [
2026-06-21T08:16:00.4178625Z             {
2026-06-21T08:16:00.4178749Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T08:16:00.4178840Z               "line": 27
2026-06-21T08:16:00.4178921Z             },
2026-06-21T08:16:00.4179081Z             {
2026-06-21T08:16:00.4179210Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T08:16:00.4179304Z               "line": 87
2026-06-21T08:16:00.4179398Z             },
2026-06-21T08:16:00.4179480Z             {
2026-06-21T08:16:00.4179619Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T08:16:00.4179703Z               "line": 145
2026-06-21T08:16:00.4179780Z             },
2026-06-21T08:16:00.4179862Z             {
2026-06-21T08:16:00.4179971Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4180066Z               "line": 492
2026-06-21T08:16:00.4180143Z             },
2026-06-21T08:16:00.4180234Z             {
2026-06-21T08:16:00.4180356Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4180439Z               "line": 546
2026-06-21T08:16:00.4180520Z             }
2026-06-21T08:16:00.4180601Z           ]
2026-06-21T08:16:00.4180685Z         },
2026-06-21T08:16:00.4180763Z         "int": {
2026-06-21T08:16:00.4180867Z           "complete": false,
2026-06-21T08:16:00.4180958Z           "evidence": []
2026-06-21T08:16:00.4181211Z         },
2026-06-21T08:16:00.4181297Z         "unit": {
2026-06-21T08:16:00.4181383Z           "complete": true,
2026-06-21T08:16:00.4181558Z           "evidence": [
2026-06-21T08:16:00.4181639Z             {
2026-06-21T08:16:00.4181770Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T08:16:00.4181854Z               "line": 272
2026-06-21T08:16:00.4181925Z             },
2026-06-21T08:16:00.4182001Z             {
2026-06-21T08:16:00.4182125Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T08:16:00.4182209Z               "line": 286
2026-06-21T08:16:00.4182294Z             },
2026-06-21T08:16:00.4182376Z             {
2026-06-21T08:16:00.4182500Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T08:16:00.4182585Z               "line": 300
2026-06-21T08:16:00.4182666Z             },
2026-06-21T08:16:00.4182748Z             {
2026-06-21T08:16:00.4182871Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T08:16:00.4182952Z               "line": 314
2026-06-21T08:16:00.4183044Z             },
2026-06-21T08:16:00.4183129Z             {
2026-06-21T08:16:00.4183247Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T08:16:00.4183339Z               "line": 348
2026-06-21T08:16:00.4183416Z             },
2026-06-21T08:16:00.4183506Z             {
2026-06-21T08:16:00.4183625Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.4183716Z               "line": 1071
2026-06-21T08:16:00.4183800Z             }
2026-06-21T08:16:00.4183882Z           ]
2026-06-21T08:16:00.4183969Z         }
2026-06-21T08:16:00.4184055Z       }
2026-06-21T08:16:00.4184134Z     },
2026-06-21T08:16:00.4184206Z     {
2026-06-21T08:16:00.4184298Z       "id": "REQ-UPD-6",
2026-06-21T08:16:00.4185099Z       "title": "Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient platform selection, channel-scoped monotonic counters, debug-channel opt-in via release-key overlay, local staging plus pull-based peer propagation, and maintainer-only convergence tooling (ADR-0016)",
2026-06-21T08:16:00.4185209Z       "requiredStages": [
2026-06-21T08:16:00.4185291Z         "doc",
2026-06-21T08:16:00.4185377Z         "impl",
2026-06-21T08:16:00.4185466Z         "unit",
2026-06-21T08:16:00.4185553Z         "int"
2026-06-21T08:16:00.4185639Z       ],
2026-06-21T08:16:00.4185725Z       "stages": {
2026-06-21T08:16:00.4185810Z         "doc": {
2026-06-21T08:16:00.4185906Z           "complete": true,
2026-06-21T08:16:00.4185991Z           "evidence": [
2026-06-21T08:16:00.4186077Z             {
2026-06-21T08:16:00.4186221Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-21T08:16:00.4186311Z               "line": 3
2026-06-21T08:16:00.4186401Z             },
2026-06-21T08:16:00.4186482Z             {
2026-06-21T08:16:00.4186588Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-21T08:16:00.4186672Z               "line": 3
2026-06-21T08:16:00.4186749Z             },
2026-06-21T08:16:00.4186841Z             {
2026-06-21T08:16:00.4186992Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-21T08:16:00.4187088Z               "line": 3
2026-06-21T08:16:00.4187165Z             }
2026-06-21T08:16:00.4187251Z           ]
2026-06-21T08:16:00.4187335Z         },
2026-06-21T08:16:00.4187425Z         "impl": {
2026-06-21T08:16:00.4187521Z           "complete": true,
2026-06-21T08:16:00.4187607Z           "evidence": [
2026-06-21T08:16:00.4187687Z             {
2026-06-21T08:16:00.4187797Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T08:16:00.4187884Z               "line": 76
2026-06-21T08:16:00.4187964Z             },
2026-06-21T08:16:00.4188040Z             {
2026-06-21T08:16:00.4188161Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T08:16:00.4188241Z               "line": 212
2026-06-21T08:16:00.4188326Z             },
2026-06-21T08:16:00.4188403Z             {
2026-06-21T08:16:00.4188527Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T08:16:00.4188717Z               "line": 69
2026-06-21T08:16:00.4188870Z             },
2026-06-21T08:16:00.4189032Z             {
2026-06-21T08:16:00.4189147Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T08:16:00.4189232Z               "line": 133
2026-06-21T08:16:00.4189314Z             },
2026-06-21T08:16:00.4189395Z             {
2026-06-21T08:16:00.4189514Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T08:16:00.4189599Z               "line": 243
2026-06-21T08:16:00.4189679Z             },
2026-06-21T08:16:00.4189761Z             {
2026-06-21T08:16:00.4189864Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T08:16:00.4189949Z               "line": 406
2026-06-21T08:16:00.4190035Z             },
2026-06-21T08:16:00.4190112Z             {
2026-06-21T08:16:00.4190221Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T08:16:00.4190306Z               "line": 534
2026-06-21T08:16:00.4190388Z             },
2026-06-21T08:16:00.4190474Z             {
2026-06-21T08:16:00.4190583Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T08:16:00.4190664Z               "line": 548
2026-06-21T08:16:00.4190746Z             },
2026-06-21T08:16:00.4190822Z             {
2026-06-21T08:16:00.4190945Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T08:16:00.4191028Z               "line": 603
2026-06-21T08:16:00.4191108Z             },
2026-06-21T08:16:00.4191184Z             {
2026-06-21T08:16:00.4191304Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T08:16:00.4191399Z               "line": 634
2026-06-21T08:16:00.4191480Z             },
2026-06-21T08:16:00.4191561Z             {
2026-06-21T08:16:00.4191686Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-21T08:16:00.4191771Z               "line": 137
2026-06-21T08:16:00.4191847Z             },
2026-06-21T08:16:00.4191924Z             {
2026-06-21T08:16:00.4192053Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-21T08:16:00.4192137Z               "line": 184
2026-06-21T08:16:00.4192234Z             },
2026-06-21T08:16:00.4192316Z             {
2026-06-21T08:16:00.4192433Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4192523Z               "line": 78
2026-06-21T08:16:00.4192599Z             },
2026-06-21T08:16:00.4192685Z             {
2026-06-21T08:16:00.4192788Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4192878Z               "line": 114
2026-06-21T08:16:00.4192964Z             },
2026-06-21T08:16:00.4193046Z             {
2026-06-21T08:16:00.4193164Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4193246Z               "line": 185
2026-06-21T08:16:00.4193337Z             },
2026-06-21T08:16:00.4193413Z             {
2026-06-21T08:16:00.4193527Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4193623Z               "line": 260
2026-06-21T08:16:00.4193704Z             },
2026-06-21T08:16:00.4193789Z             {
2026-06-21T08:16:00.4193890Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4193976Z               "line": 292
2026-06-21T08:16:00.4194061Z             },
2026-06-21T08:16:00.4194142Z             {
2026-06-21T08:16:00.4194248Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4194337Z               "line": 323
2026-06-21T08:16:00.4194428Z             },
2026-06-21T08:16:00.4194505Z             {
2026-06-21T08:16:00.4194620Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4194704Z               "line": 346
2026-06-21T08:16:00.4194786Z             },
2026-06-21T08:16:00.4194873Z             {
2026-06-21T08:16:00.4194986Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4195085Z               "line": 388
2026-06-21T08:16:00.4195161Z             },
2026-06-21T08:16:00.4195387Z             {
2026-06-21T08:16:00.4195502Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4195683Z               "line": 398
2026-06-21T08:16:00.4195764Z             },
2026-06-21T08:16:00.4195851Z             {
2026-06-21T08:16:00.4195965Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4196050Z               "line": 410
2026-06-21T08:16:00.4196142Z             },
2026-06-21T08:16:00.4196223Z             {
2026-06-21T08:16:00.4196341Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4196428Z               "line": 420
2026-06-21T08:16:00.4196519Z             },
2026-06-21T08:16:00.4196604Z             {
2026-06-21T08:16:00.4196718Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4196810Z               "line": 439
2026-06-21T08:16:00.4196890Z             },
2026-06-21T08:16:00.4196975Z             {
2026-06-21T08:16:00.4197091Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4197195Z               "line": 449
2026-06-21T08:16:00.4197286Z             },
2026-06-21T08:16:00.4197377Z             {
2026-06-21T08:16:00.4197501Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4197586Z               "line": 94
2026-06-21T08:16:00.4197672Z             },
2026-06-21T08:16:00.4197759Z             {
2026-06-21T08:16:00.4197871Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4197962Z               "line": 120
2026-06-21T08:16:00.4198043Z             },
2026-06-21T08:16:00.4198139Z             {
2026-06-21T08:16:00.4198247Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4198343Z               "line": 135
2026-06-21T08:16:00.4198434Z             },
2026-06-21T08:16:00.4198515Z             {
2026-06-21T08:16:00.4198629Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4198716Z               "line": 162
2026-06-21T08:16:00.4198811Z             },
2026-06-21T08:16:00.4198901Z             {
2026-06-21T08:16:00.4199087Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4199192Z               "line": 174
2026-06-21T08:16:00.4199273Z             },
2026-06-21T08:16:00.4199370Z             {
2026-06-21T08:16:00.4199473Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4199559Z               "line": 185
2026-06-21T08:16:00.4199641Z             },
2026-06-21T08:16:00.4199722Z             {
2026-06-21T08:16:00.4199826Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4199907Z               "line": 451
2026-06-21T08:16:00.4199995Z             },
2026-06-21T08:16:00.4200079Z             {
2026-06-21T08:16:00.4200197Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4200273Z               "line": 573
2026-06-21T08:16:00.4200359Z             },
2026-06-21T08:16:00.4200443Z             {
2026-06-21T08:16:00.4200547Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T08:16:00.4200648Z               "line": 171
2026-06-21T08:16:00.4200720Z             },
2026-06-21T08:16:00.4200810Z             {
2026-06-21T08:16:00.4200924Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-21T08:16:00.4201016Z               "line": 65
2026-06-21T08:16:00.4201101Z             },
2026-06-21T08:16:00.4201176Z             {
2026-06-21T08:16:00.4201283Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-21T08:16:00.4201363Z               "line": 71
2026-06-21T08:16:00.4201444Z             },
2026-06-21T08:16:00.4201525Z             {
2026-06-21T08:16:00.4201626Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-21T08:16:00.4201711Z               "line": 77
2026-06-21T08:16:00.4201792Z             },
2026-06-21T08:16:00.4201869Z             {
2026-06-21T08:16:00.4201978Z               "path": "crates/xtask/src/main.rs",
2026-06-21T08:16:00.4202068Z               "line": 778
2026-06-21T08:16:00.4202154Z             },
2026-06-21T08:16:00.4202350Z             {
2026-06-21T08:16:00.4202450Z               "path": "crates/xtask/src/main.rs",
2026-06-21T08:16:00.4202631Z               "line": 795
2026-06-21T08:16:00.4202717Z             },
2026-06-21T08:16:00.4202804Z             {
2026-06-21T08:16:00.4202909Z               "path": "crates/xtask/src/main.rs",
2026-06-21T08:16:00.4202988Z               "line": 838
2026-06-21T08:16:00.4203073Z             },
2026-06-21T08:16:00.4203159Z             {
2026-06-21T08:16:00.4203259Z               "path": "crates/xtask/src/main.rs",
2026-06-21T08:16:00.4203358Z               "line": 981
2026-06-21T08:16:00.4203433Z             },
2026-06-21T08:16:00.4203515Z             {
2026-06-21T08:16:00.4203620Z               "path": "crates/xtask/src/main.rs",
2026-06-21T08:16:00.4203701Z               "line": 1131
2026-06-21T08:16:00.4203782Z             }
2026-06-21T08:16:00.4203859Z           ]
2026-06-21T08:16:00.4203940Z         },
2026-06-21T08:16:00.4204020Z         "int": {
2026-06-21T08:16:00.4204126Z           "complete": true,
2026-06-21T08:16:00.4204211Z           "evidence": [
2026-06-21T08:16:00.4204292Z             {
2026-06-21T08:16:00.4204430Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-21T08:16:00.4204526Z               "line": 569
2026-06-21T08:16:00.4204607Z             },
2026-06-21T08:16:00.4204687Z             {
2026-06-21T08:16:00.4204803Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-21T08:16:00.4204898Z               "line": 135
2026-06-21T08:16:00.4204979Z             }
2026-06-21T08:16:00.4205060Z           ]
2026-06-21T08:16:00.4205137Z         },
2026-06-21T08:16:00.4205226Z         "unit": {
2026-06-21T08:16:00.4205308Z           "complete": true,
2026-06-21T08:16:00.4205400Z           "evidence": [
2026-06-21T08:16:00.4205480Z             {
2026-06-21T08:16:00.4205593Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T08:16:00.4205688Z               "line": 626
2026-06-21T08:16:00.4205764Z             },
2026-06-21T08:16:00.4205858Z             {
2026-06-21T08:16:00.4205971Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T08:16:00.4206063Z               "line": 675
2026-06-21T08:16:00.4206154Z             },
2026-06-21T08:16:00.4206239Z             {
2026-06-21T08:16:00.4206363Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T08:16:00.4206445Z               "line": 696
2026-06-21T08:16:00.4206535Z             },
2026-06-21T08:16:00.4206615Z             {
2026-06-21T08:16:00.4206736Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4206816Z               "line": 513
2026-06-21T08:16:00.4206896Z             },
2026-06-21T08:16:00.4206973Z             {
2026-06-21T08:16:00.4207088Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4207179Z               "line": 638
2026-06-21T08:16:00.4207259Z             },
2026-06-21T08:16:00.4207346Z             {
2026-06-21T08:16:00.4207464Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4207550Z               "line": 675
2026-06-21T08:16:00.4207632Z             },
2026-06-21T08:16:00.4207723Z             {
2026-06-21T08:16:00.4207837Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4207927Z               "line": 947
2026-06-21T08:16:00.4208009Z             },
2026-06-21T08:16:00.4208094Z             {
2026-06-21T08:16:00.4208203Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4208295Z               "line": 969
2026-06-21T08:16:00.4208371Z             },
2026-06-21T08:16:00.4208450Z             {
2026-06-21T08:16:00.4208569Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4208641Z               "line": 986
2026-06-21T08:16:00.4208728Z             },
2026-06-21T08:16:00.4208812Z             {
2026-06-21T08:16:00.4208928Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4209080Z               "line": 1001
2026-06-21T08:16:00.4209262Z             },
2026-06-21T08:16:00.4209361Z             {
2026-06-21T08:16:00.4209470Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4209652Z               "line": 1027
2026-06-21T08:16:00.4209729Z             },
2026-06-21T08:16:00.4209819Z             {
2026-06-21T08:16:00.4209925Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T08:16:00.4210019Z               "line": 457
2026-06-21T08:16:00.4210105Z             },
2026-06-21T08:16:00.4210182Z             {
2026-06-21T08:16:00.4210310Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-21T08:16:00.4210386Z               "line": 338
2026-06-21T08:16:00.4210468Z             },
2026-06-21T08:16:00.4210545Z             {
2026-06-21T08:16:00.4210648Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4210734Z               "line": 10549
2026-06-21T08:16:00.4210814Z             },
2026-06-21T08:16:00.4210896Z             {
2026-06-21T08:16:00.4210998Z               "path": "crates/xtask/src/main.rs",
2026-06-21T08:16:00.4211102Z               "line": 1260
2026-06-21T08:16:00.4211174Z             },
2026-06-21T08:16:00.4213993Z             {
2026-06-21T08:16:00.4214138Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-21T08:16:00.4214223Z               "line": 130
2026-06-21T08:16:00.4214313Z             }
2026-06-21T08:16:00.4214391Z           ]
2026-06-21T08:16:00.4214471Z         }
2026-06-21T08:16:00.4214551Z       }
2026-06-21T08:16:00.4214632Z     },
2026-06-21T08:16:00.4214715Z     {
2026-06-21T08:16:00.4214805Z       "id": "REQ-UPD-7",
2026-06-21T08:16:00.4216899Z       "title": "Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.",
2026-06-21T08:16:00.4217033Z       "requiredStages": [
2026-06-21T08:16:00.4217118Z         "impl",
2026-06-21T08:16:00.4217199Z         "unit"
2026-06-21T08:16:00.4217276Z       ],
2026-06-21T08:16:00.4217362Z       "stages": {
2026-06-21T08:16:00.4217438Z         "doc": {
2026-06-21T08:16:00.4217538Z           "complete": false,
2026-06-21T08:16:00.4217625Z           "evidence": []
2026-06-21T08:16:00.4217705Z         },
2026-06-21T08:16:00.4217795Z         "impl": {
2026-06-21T08:16:00.4217872Z           "complete": true,
2026-06-21T08:16:00.4217963Z           "evidence": [
2026-06-21T08:16:00.4218039Z             {
2026-06-21T08:16:00.4218139Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4218226Z               "line": 2626
2026-06-21T08:16:00.4218306Z             }
2026-06-21T08:16:00.4218387Z           ]
2026-06-21T08:16:00.4218458Z         },
2026-06-21T08:16:00.4218545Z         "int": {
2026-06-21T08:16:00.4218635Z           "complete": false,
2026-06-21T08:16:00.4218711Z           "evidence": []
2026-06-21T08:16:00.4218788Z         },
2026-06-21T08:16:00.4218865Z         "unit": {
2026-06-21T08:16:00.4219029Z           "complete": true,
2026-06-21T08:16:00.4219101Z           "evidence": [
2026-06-21T08:16:00.4219187Z             {
2026-06-21T08:16:00.4219293Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4219391Z               "line": 10525
2026-06-21T08:16:00.4219468Z             }
2026-06-21T08:16:00.4219550Z           ]
2026-06-21T08:16:00.4219631Z         }
2026-06-21T08:16:00.4219711Z       }
2026-06-21T08:16:00.4219788Z     },
2026-06-21T08:16:00.4219870Z     {
2026-06-21T08:16:00.4219960Z       "id": "REQ-UPD-8",
2026-06-21T08:16:00.4222403Z       "title": "Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.",
2026-06-21T08:16:00.4222746Z       "requiredStages": [
2026-06-21T08:16:00.4222832Z         "impl",
2026-06-21T08:16:00.4222921Z         "unit"
2026-06-21T08:16:00.4222989Z       ],
2026-06-21T08:16:00.4223080Z       "stages": {
2026-06-21T08:16:00.4223161Z         "doc": {
2026-06-21T08:16:00.4223251Z           "complete": false,
2026-06-21T08:16:00.4223347Z           "evidence": []
2026-06-21T08:16:00.4223432Z         },
2026-06-21T08:16:00.4223513Z         "impl": {
2026-06-21T08:16:00.4223604Z           "complete": true,
2026-06-21T08:16:00.4223691Z           "evidence": [
2026-06-21T08:16:00.4223765Z             {
2026-06-21T08:16:00.4223895Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T08:16:00.4223982Z               "line": 77
2026-06-21T08:16:00.4224057Z             },
2026-06-21T08:16:00.4224142Z             {
2026-06-21T08:16:00.4224261Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4224347Z               "line": 49
2026-06-21T08:16:00.4224425Z             },
2026-06-21T08:16:00.4224506Z             {
2026-06-21T08:16:00.4224626Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4224707Z               "line": 152
2026-06-21T08:16:00.4224788Z             },
2026-06-21T08:16:00.4224868Z             {
2026-06-21T08:16:00.4224984Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4225083Z               "line": 215
2026-06-21T08:16:00.4225169Z             },
2026-06-21T08:16:00.4225251Z             {
2026-06-21T08:16:00.4225360Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4225445Z               "line": 230
2026-06-21T08:16:00.4225532Z             },
2026-06-21T08:16:00.4225614Z             {
2026-06-21T08:16:00.4225727Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4225822Z               "line": 247
2026-06-21T08:16:00.4225905Z             },
2026-06-21T08:16:00.4225989Z             {
2026-06-21T08:16:00.4226104Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4226181Z               "line": 269
2026-06-21T08:16:00.4226257Z             },
2026-06-21T08:16:00.4226332Z             {
2026-06-21T08:16:00.4226456Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4226539Z               "line": 66
2026-06-21T08:16:00.4226629Z             },
2026-06-21T08:16:00.4226709Z             {
2026-06-21T08:16:00.4226813Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4226894Z               "line": 154
2026-06-21T08:16:00.4226978Z             },
2026-06-21T08:16:00.4227059Z             {
2026-06-21T08:16:00.4227159Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4227246Z               "line": 2430
2026-06-21T08:16:00.4227331Z             },
2026-06-21T08:16:00.4227411Z             {
2026-06-21T08:16:00.4227508Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4227589Z               "line": 2493
2026-06-21T08:16:00.4227655Z             },
2026-06-21T08:16:00.4227730Z             {
2026-06-21T08:16:00.4227832Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4227908Z               "line": 2503
2026-06-21T08:16:00.4228059Z             },
2026-06-21T08:16:00.4228147Z             {
2026-06-21T08:16:00.4228241Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4228389Z               "line": 2510
2026-06-21T08:16:00.4228471Z             },
2026-06-21T08:16:00.4228547Z             {
2026-06-21T08:16:00.4228642Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4228728Z               "line": 2627
2026-06-21T08:16:00.4228809Z             },
2026-06-21T08:16:00.4228890Z             {
2026-06-21T08:16:00.4229062Z               "path": "crates/xtask/src/main.rs",
2026-06-21T08:16:00.4229153Z               "line": 480
2026-06-21T08:16:00.4229233Z             },
2026-06-21T08:16:00.4229310Z             {
2026-06-21T08:16:00.4229421Z               "path": "crates/xtask/src/main.rs",
2026-06-21T08:16:00.4229505Z               "line": 494
2026-06-21T08:16:00.4229595Z             }
2026-06-21T08:16:00.4229675Z           ]
2026-06-21T08:16:00.4229752Z         },
2026-06-21T08:16:00.4229834Z         "int": {
2026-06-21T08:16:00.4229933Z           "complete": false,
2026-06-21T08:16:00.4230014Z           "evidence": []
2026-06-21T08:16:00.4230106Z         },
2026-06-21T08:16:00.4230187Z         "unit": {
2026-06-21T08:16:00.4230271Z           "complete": true,
2026-06-21T08:16:00.4230358Z           "evidence": [
2026-06-21T08:16:00.4230444Z             {
2026-06-21T08:16:00.4230572Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T08:16:00.4230648Z               "line": 476
2026-06-21T08:16:00.4230725Z             },
2026-06-21T08:16:00.4230810Z             {
2026-06-21T08:16:00.4230924Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T08:16:00.4231012Z               "line": 580
2026-06-21T08:16:00.4231097Z             },
2026-06-21T08:16:00.4231178Z             {
2026-06-21T08:16:00.4231273Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4231364Z               "line": 10527
2026-06-21T08:16:00.4231450Z             },
2026-06-21T08:16:00.4231526Z             {
2026-06-21T08:16:00.4231626Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4231708Z               "line": 10549
2026-06-21T08:16:00.4231797Z             }
2026-06-21T08:16:00.4231882Z           ]
2026-06-21T08:16:00.4231963Z         }
2026-06-21T08:16:00.4232049Z       }
2026-06-21T08:16:00.4232128Z     },
2026-06-21T08:16:00.4232209Z     {
2026-06-21T08:16:00.4232295Z       "id": "REQ-UPD-9",
2026-06-21T08:16:00.4234801Z       "title": "`gh_release` adapter [update] avenue (optional signing): an adapter declares `[update] avenue = \"gh_release\", repo = \"user/repo\"` (+ optional `asset`, default `adapter.spt`; + optional Ed25519 `signing_key`); spt-core's ripple compares the repo's LATEST GitHub release version against the installed adapter version and, when newer, auto-updates by fetching the release `.spt` archive (the REQ-INSTALL-9 `--release` fetch primitive) → verifies the `.spt` against `signing_key` if declared, else HTTPS+GitHub first-acquisition trust → re-extracts + re-registers the adapter root. Lets a harness adapter ship updates from its own GitHub releases with NO signing tooling or plugin coupling (removes the perri file_pull/delegated avenue blockers). Acquisition-trust mirrors `--release` + the installer first-fetch; does not alter spt-core self-update (REQ-UPD-1..8).",
2026-06-21T08:16:00.4234926Z       "requiredStages": [
2026-06-21T08:16:00.4235014Z         "doc",
2026-06-21T08:16:00.4235095Z         "impl",
2026-06-21T08:16:00.4235176Z         "unit"
2026-06-21T08:16:00.4235263Z       ],
2026-06-21T08:16:00.4235343Z       "stages": {
2026-06-21T08:16:00.4235428Z         "doc": {
2026-06-21T08:16:00.4235521Z           "complete": true,
2026-06-21T08:16:00.4235606Z           "evidence": [
2026-06-21T08:16:00.4235681Z             {
2026-06-21T08:16:00.4235767Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.4235854Z               "line": 93
2026-06-21T08:16:00.4235940Z             },
2026-06-21T08:16:00.4236024Z             {
2026-06-21T08:16:00.4236249Z               "path": "docs/MANIFEST.md",
2026-06-21T08:16:00.4236339Z               "line": 285
2026-06-21T08:16:00.4236521Z             }
2026-06-21T08:16:00.4236592Z           ]
2026-06-21T08:16:00.4236673Z         },
2026-06-21T08:16:00.4236760Z         "impl": {
2026-06-21T08:16:00.4236846Z           "complete": true,
2026-06-21T08:16:00.4236930Z           "evidence": [
2026-06-21T08:16:00.4237017Z             {
2026-06-21T08:16:00.4237156Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T08:16:00.4237245Z               "line": 128
2026-06-21T08:16:00.4237330Z             },
2026-06-21T08:16:00.4237411Z             {
2026-06-21T08:16:00.4237529Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4237610Z               "line": 533
2026-06-21T08:16:00.4237690Z             },
2026-06-21T08:16:00.4237762Z             {
2026-06-21T08:16:00.4237886Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.4237962Z               "line": 459
2026-06-21T08:16:00.4238048Z             },
2026-06-21T08:16:00.4238130Z             {
2026-06-21T08:16:00.4238253Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.4238334Z               "line": 505
2026-06-21T08:16:00.4238411Z             },
2026-06-21T08:16:00.4238492Z             {
2026-06-21T08:16:00.4238606Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.4238688Z               "line": 928
2026-06-21T08:16:00.4238768Z             },
2026-06-21T08:16:00.4238854Z             {
2026-06-21T08:16:00.4239036Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T08:16:00.4239121Z               "line": 302
2026-06-21T08:16:00.4239207Z             },
2026-06-21T08:16:00.4239288Z             {
2026-06-21T08:16:00.4239398Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4239473Z               "line": 5675
2026-06-21T08:16:00.4239560Z             },
2026-06-21T08:16:00.4239642Z             {
2026-06-21T08:16:00.4239755Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4239841Z               "line": 5720
2026-06-21T08:16:00.4239923Z             },
2026-06-21T08:16:00.4240004Z             {
2026-06-21T08:16:00.4240103Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4240188Z               "line": 5857
2026-06-21T08:16:00.4240269Z             },
2026-06-21T08:16:00.4240356Z             {
2026-06-21T08:16:00.4240450Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4240535Z               "line": 5878
2026-06-21T08:16:00.4240622Z             },
2026-06-21T08:16:00.4240699Z             {
2026-06-21T08:16:00.4240793Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4240869Z               "line": 5901
2026-06-21T08:16:00.4240956Z             },
2026-06-21T08:16:00.4241028Z             {
2026-06-21T08:16:00.4241127Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4241213Z               "line": 5928
2026-06-21T08:16:00.4241295Z             }
2026-06-21T08:16:00.4241380Z           ]
2026-06-21T08:16:00.4241466Z         },
2026-06-21T08:16:00.4241547Z         "int": {
2026-06-21T08:16:00.4241653Z           "complete": false,
2026-06-21T08:16:00.4241738Z           "evidence": []
2026-06-21T08:16:00.4241828Z         },
2026-06-21T08:16:00.4241910Z         "unit": {
2026-06-21T08:16:00.4242000Z           "complete": true,
2026-06-21T08:16:00.4242076Z           "evidence": [
2026-06-21T08:16:00.4242162Z             {
2026-06-21T08:16:00.4242287Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T08:16:00.4242371Z               "line": 259
2026-06-21T08:16:00.4242457Z             },
2026-06-21T08:16:00.4242538Z             {
2026-06-21T08:16:00.4242656Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T08:16:00.4242745Z               "line": 657
2026-06-21T08:16:00.4242831Z             },
2026-06-21T08:16:00.4242913Z             {
2026-06-21T08:16:00.4243022Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T08:16:00.4243223Z               "line": 1107
2026-06-21T08:16:00.4243304Z             },
2026-06-21T08:16:00.4243490Z             {
2026-06-21T08:16:00.4243589Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4243680Z               "line": 7565
2026-06-21T08:16:00.4243765Z             }
2026-06-21T08:16:00.4243843Z           ]
2026-06-21T08:16:00.4243923Z         }
2026-06-21T08:16:00.4244004Z       }
2026-06-21T08:16:00.4244090Z     },
2026-06-21T08:16:00.4244162Z     {
2026-06-21T08:16:00.4244252Z       "id": "REQ-WHOAMI-1",
2026-06-21T08:16:00.4245875Z       "title": "`spt whoami` is a thin ALIAS for `spt endpoint list` (full output: the SELF pin + the subnet roster) — the standalone bare-id command is dropped (the `id=$(spt whoami)` capture was never a real pattern: env vars don't persist between agent tool calls). The one new render: the `endpoint list` SELF pin carries the Self endpoint's authored `endpoint description` (info::read_info(...).resources) when present, inline after the liveness state. whoami stays a top-level hot-path verb (parse unchanged, REQ-MSG-9).",
2026-06-21T08:16:00.4245989Z       "requiredStages": [
2026-06-21T08:16:00.4246071Z         "doc",
2026-06-21T08:16:00.4246151Z         "impl",
2026-06-21T08:16:00.4246237Z         "unit"
2026-06-21T08:16:00.4246322Z       ],
2026-06-21T08:16:00.4246405Z       "stages": {
2026-06-21T08:16:00.4246495Z         "doc": {
2026-06-21T08:16:00.4246580Z           "complete": true,
2026-06-21T08:16:00.4246657Z           "evidence": [
2026-06-21T08:16:00.4246739Z             {
2026-06-21T08:16:00.4246833Z               "path": "CONTEXT.md",
2026-06-21T08:16:00.4246914Z               "line": 707
2026-06-21T08:16:00.4246991Z             }
2026-06-21T08:16:00.4247072Z           ]
2026-06-21T08:16:00.4247147Z         },
2026-06-21T08:16:00.4247219Z         "impl": {
2026-06-21T08:16:00.4247301Z           "complete": true,
2026-06-21T08:16:00.4247387Z           "evidence": [
2026-06-21T08:16:00.4247481Z             {
2026-06-21T08:16:00.4247582Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4247664Z               "line": 3190
2026-06-21T08:16:00.4247749Z             },
2026-06-21T08:16:00.4247829Z             {
2026-06-21T08:16:00.4247928Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4248005Z               "line": 3218
2026-06-21T08:16:00.4248085Z             }
2026-06-21T08:16:00.4248165Z           ]
2026-06-21T08:16:00.4248250Z         },
2026-06-21T08:16:00.4248332Z         "int": {
2026-06-21T08:16:00.4248413Z           "complete": false,
2026-06-21T08:16:00.4248493Z           "evidence": []
2026-06-21T08:16:00.4248575Z         },
2026-06-21T08:16:00.4248661Z         "unit": {
2026-06-21T08:16:00.4248738Z           "complete": true,
2026-06-21T08:16:00.4248827Z           "evidence": [
2026-06-21T08:16:00.4248904Z             {
2026-06-21T08:16:00.4249076Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4249166Z               "line": 7847
2026-06-21T08:16:00.4249253Z             },
2026-06-21T08:16:00.4249343Z             {
2026-06-21T08:16:00.4249456Z               "path": "crates/spt/src/cli.rs",
2026-06-21T08:16:00.4249562Z               "line": 7900
2026-06-21T08:16:00.4249639Z             }
2026-06-21T08:16:00.4249715Z           ]
2026-06-21T08:16:00.4249800Z         }
2026-06-21T08:16:00.4249882Z       }
2026-06-21T08:16:00.4249958Z     }
2026-06-21T08:16:00.4250038Z   ],
2026-06-21T08:16:00.4250120Z   "findings": []
2026-06-21T08:16:00.4250197Z }
